我想知道是否可以使用仅适用于特定存储库的RSA密钥。或者某种类似的东西。我的用户需要能够创建一个git repo并对其进行读/写,并管理谁可以自己读取或写入它。我的计划是使用RSA密钥(authorized_keys)和git用户,并将密钥提供给需要连接的组。有没有办法指定rsa密钥可以访问哪些文件夹?
答案 0 :(得分:2)
是的,它受到支持。尝试将config
(不带任何扩展名)文件添加到~./ssh
,内容如下:
Host github.com
HostName github.com
User madhead
IdentityFile ~/.ssh/id_rsa_1
Host bitbucket.org
HostName bitbucket.org
User madhead_
IdentityFile ~/.ssh/id_rsa_2
答案 1 :(得分:2)
听起来像是Gitosis的工作。
Gitosis允许您让每个用户使用git@server
用户并通过公钥进行身份识别。在gitosis内部,您可以指定用户(及其密钥),组和存储库。可以为每个用户和组授予对任何存储库的读或写权限。
这有效地实现了您的要求:某些密钥可以访问某些存储库;所有用户都通过他们的pubkeys进行身份验证。
值得注意的是,gitosis并不是一个新的服务器或守护进程,而只是使用已经可访问的SSH服务器;所有访问控制都在用户建立SSH连接后完成。此外,使用此方法无法进行常规shell登录。
基本上,Gitosis正是GitHub等所做的。