gitHub如何使用ssh Key限制访问?

时间:2013-03-02 13:33:35

标签: ssh ssh-keys

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

那怎么可能呢?

提前致谢。

1 个答案:

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