Git从命令行询问密码

时间:2011-01-19 01:59:14

标签: git gitosis

我在服务器上设置git和gitosis来管理我的回购。它适用于我设置的初始shell帐户,即我可以运行:

git clone git@MYSERVER:gitosis-admin.git

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

git clone johndoe@MYSERVER:gitosis-admin.git

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

Git keeps asking for password

如何告诉git使用ssh密钥而不是要求输入密码?

2 个答案:

答案 0 :(得分:5)

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

git clone git@MYSERVER:<repository>

Gitosis将您的配置文件中的名称与服务器上的密钥名称相关联。也就是说,你有像

这样的行
[group users]
members = johndoe janeroe
writable = repo1 repo2

在gitosis.conf中,文件johndoe.pub,janedoe.pub在gitosis-admin / keydir中; gitosis将为用户使用适当的密钥,但您始终使用“git”作为URL中的用户。那是因为它总是使用“git”帐户。

答案 1 :(得分:2)

好吧,我刚读过关于gitosis的内容,而AFAICT在使用它时绝对不能从johndoe@MYSERVER克隆。始终从git@克隆,并确保正确设置了ssh密钥,以便服务器可以使用它们来区分(例如)johndoe和janedoe。

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

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