gitHub が sshKey を使用してのみレポへのアクセスを制限する方法を探しています。誰もが「git」ユーザーを使用して接続しています...しかし、アクセスはあなたのリポジトリにのみ制限されています。
では、それはどのように可能ですか?
前もって感謝します。
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
は、他のユーザーではなく、ログインしていることを認識します。