4

gitHub が sshKey を使用してのみレポへのアクセスを制限する方法を探しています。誰もが「git」ユーザーを使用して接続しています...しかし、アクセスはあなたのリポジトリにのみ制限されています。

では、それはどのように可能ですか?

前もって感謝します。

4

1 に答える 1

3

GitHubはOpenSSHの機能を利用しています。sshd(8)のマニュアルページの「AUTHORIZED_KEYSファイル形式」のセクションを参照してください。authorized_keysファイルの各行は次のもので構成されていると書かれています。

<options> <keytype> <base64-encoded key> <comment>

サポートされているオプションの1つは次のcommandとおりです。

  • command="command"commandこのキーが認証に使用されるたび にが実行されることを指定します。ユーザーが指定したコマンド(存在する場合)は無視されます。

したがって、GitHubは~git/.ssh/authorized_keysファイルで次のようなことを行うことができます。

command="foo -u user1" <user1's key stuff here>
command="foo -u user2" <user2's key stuff here>

user1これで、ログインするたびにサーバーが実行されfoo -u user1ます。したがって、fooスクリプトuser1は、他のユーザーではなく、ログインしていることを認識します。

于 2013-03-03T18:16:59.710 に答える