我在徘徊 gitHub 如何仅通过使用 sshKey 来限制 repo 访问。每个人都在使用“git”用户进行连接......但访问权限仅限于您的存储库。
那怎么可能呢?
提前致谢。
GitHub 正在利用 OpenSSH 的一项功能。请参阅 sshd(8) 手册页中的“AUTHORIZED_KEYS 文件格式”部分。它说authorized_keys
文件中的每一行都包含以下内容:
<options> <keytype> <base64-encoded key> <comment>
支持的选项之一是command
:
command="command"
指定command
每当此密钥用于身份验证时执行。用户提供的命令(如果有)将被忽略。
~git/.ssh/authorized_keys
因此,GitHub 可以在他们的文件中做这样的事情:
command="foo -u user1" <user1's key stuff here>
command="foo -u user2" <user2's key stuff here>
现在,无论何时user1
登录,服务器都会运行foo -u user1
. 因此,foo
脚本知道已user1
登录,而不是其他用户。