我在徘徊gitHub如何仅通过使用sshKey限制repo访问。 每个人都使用'git'用户进行连接......但访问权限仅限于您的存储库。
那怎么可能呢?
提前致谢。
答案 0 :(得分:3)
GitHub正在利用OpenSSH的一项功能。请参见sshd(8)手册页中的“AUTHORIZED_KEYS FILE FORMAT”部分。它表示authorized_keys
文件中的每一行都包含以下内容:
<options> <keytype> <base64-encoded key> <comment>
支持的选项之一是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
已登录,而不是其他用户。