4

我在徘徊 gitHub 如何仅通过使用 sshKey 来限制 repo 访问。每个人都在使用“git”用户进行连接......但访问权限仅限于您的存储库。

那怎么可能呢?

提前致谢。

4

1 回答 1

3

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登录,而不是其他用户。

于 2013-03-03T18:16:59.710 回答