SSH経由で通信するとき、Gitはどのコマンドを使用しますか?

SSH経由で通信するとき、Gitはどのコマンドを使用しますか?

command=""in を使用すると、authorized_keys特定のキーが実行できるコマンドを制限できます。

Gitがリモートで動作するにはどのコマンドが必要ですか?

~からプロGitの本このように推論でき、git-upload-pack必須git-receive-packですが、他に何がありますか?

注私はこのキーを使用せずにユーザーが正常にログインできるようにしたいと思います。

ベストアンサー1

頑張ってgit-shellGit専用のログインシェルとして使用するのに適したコマンドです。次のコマンドを完全に許可します。

git receive-pack
git upload-pack
git upload-archive
git-receive-pack
git-upload-pack
git-upload-archive
cvsサーバー(CVSサーバーをシミュレートするために使用され、Gitプロトコルには不要)

したがって、許可する必要がある唯一のコマンドは次のとおりです。私がアクセスできるすべてのGitバージョンは、ハイフンを含むバージョンのみを使用します。

git-shellあなたがやりたいことをするだけで十分かもしれません。


GIT_SSHパラメータを反映するshimを設定して、特定のコマンドに対してGitが実行されている内容を確認できます。スクリプトを作成しますssh.sh

#!/bin/bash
echo "$@" >&2

次に、次を実行します。

GIT_SSH="./ssh.sh" git push

実行を試みるリモートコマンドが表示されます。

おすすめ記事