每个git仓库的特定RSA密钥

时间:2013-01-01 00:16:13

标签: git rsa

我想知道是否可以使用仅适用于特定存储库的RSA密钥。或者某种类似的东西。我的用户需要能够创建一个git repo并对其进行读/写,并管理谁可以自己读取或写入它。我的计划是使用RSA密钥(authorized_keys)和git用户,并将密钥提供给需要连接的组。有没有办法指定rsa密钥可以访问哪些文件夹?

2 个答案:

答案 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等所做的。