Git命令行要求输入密码

3
我可以帮你进行翻译。以下是需要翻译的内容:

我在服务器上安装了git和gitosis来管理我的代码库。对于我最初设置的shell账户,它能够正常工作,也就是说,我可以运行以下命令:

git clone git@MYSERVER:gitosis-admin.git

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

git clone johndoe@MYSERVER:gitosis-admin.git

我设置了SSH密钥并将其副本推送到服务器上的密钥目录。这个问题似乎涉及相同的问题,但给出的解决方案是针对tortoisegit的。 Git一直要求密码 我如何告诉git使用ssh密钥而不是要求密码?
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将为用户使用适当的密钥,但您始终在URL中使用“git”作为用户。这是因为它始终使用“git”帐户。

我有一个类似的情况。请在这里阅读我的问题:https://dev59.com/UlPTa4cB1Zd3GeqPn_r0 - andho

2

我刚刚了解到gitosis,据我所知,在使用它时永远不应该从johndoe@MYSERVER克隆。而应该总是从git@克隆,并确保您的ssh密钥已设置正确,以便服务器可以使用它们来区分(例如)johndoe和janedoe。

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

另一方面,因为gitosis不创建实际的用户账户,所以您不能作为johndoe通过ssh登录机器,这也意味着您不能在git中使用johndoe@...地址的仓库。如果您需要这样做,那么您将需要以另一种方式设置git服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接