3

我在服务器上设置了 git 和 gitosis 来管理我的存储库。对于我设置的初始 shell 帐户,它可以正常工作,即我可以运行:

git clone git@MYSERVER:gitosis-admin.git

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

git clone johndoe@MYSERVER:gitosis-admin.git

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

Git一直要求输入密码

如何告诉 git 使用 ssh 密钥而不是询问密码?

4

2 回答 2

5

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

git clone git@MYSERVER:<repository>

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

[group users]
members = johndoe janeroe
writable = repo1 repo2

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

于 2011-01-19T04:37:34.533 回答
2

johndoe@MYSERVER好吧,我刚刚阅读了有关 gitosis 和 AFAICT 的信息,您在使用它时永远不应该从中克隆。始终从 克隆git@,并确保您的 ssh 密钥设置正确,以便服务器可以使用这些密钥来区分(例如)johndoe 和 janedoe。

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

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

于 2011-01-19T04:37:09.283 回答