2011-01-19 83 views
3

我在服务器上设置git和gitosis来管理我的回购站。它的正常工作为我把它与最初的shell帐号,即我可以运行:Git从命令行询问密码

git clone [email protected]:gitosis-admin.git 

但是,当我尝试使用我创建了单独的帐户(通过gitosis.conf的),它一直要求一个密码:

git clone [email protected]:gitosis-admin.git 

我设置SSH密钥并将副本推送到服务器上的keydir。这个问题似乎解决了同样的问题,但给出的解决方案是forrtoisegit。

Git keeps asking for password

我如何告诉git的使用,而不是要求输入密码SSH密钥?

回答

5

你不使用你的用户名,你总是说:

git clone [email protected]:<repository> 

的gitosis在其配置文件与服务器上的键名关联你的名字。也就是说,你有一个像

[group users] 
members = johndoe janeroe 
writable = repo1 repo2 
在gitosis.conf的

线,和文件johndoe.pub,在Gitosis的管理员/ keydir janedoe.pub; gitosis将为用户使用适当的密钥,但您始终使用“git”作为URL中的用户。这是因为它总是使用“git”帐户。

+0

我有类似的情况。请在这里阅读我的问题:http://stackoverflow.com/questions/4882545/gitosis-asking-for-password – andho 2011-02-03 03:57:13

2

那么,我刚刚读了关于gitosis和AFAICT,你永远不应该从[email protected]克隆时使用它。请始终从[email protected]克隆,并确保您的ssh密钥设置正确,以便服务器可以使用这些来区分(例如)johndoe和janedoe。

你在客户端做的是将johndoe的SSH密钥添加到你的钥匙串中,删除服务器将接受的任何其他密钥,并将你的git用户和电子邮件设置设置为johndoe。服务器会比较两者,看看它们是否匹配,然后让你提交。如果您将SSH配置为使用其他人的密钥,然后尝试使用git作为johndoe进行提交,则可以连接到服务器,但不会让您继续进行提交。

OTOH,因为gitosis不会创建实际的用户帐户,所以您不能在机器中使用johndoe ssh,这也意味着您不能在git中使用johndoe @ ...地址作为存储库。如果你需要这样做,你必须以另一种方式设置你的git服务器。