Git一直要求输入密码

5
我已经搜索了好几个小时,寻找解决这个问题的方法,但是尝试的所有方法都无效。需要说明的是,虽然我之前使用过*nix系统,但我基本上是一名新手,所以我肯定在Git的安装和设置过程中漏掉了某些步骤。
我在工作网络上设置了一个Ubuntu盒子来托管我们的新Git仓库。该盒子正在运行Git、Gitosis和ViewGit。一切似乎都设置正确了,并且我可以在ViewGit中查看我添加的仓库。问题是当我尝试通过Windows中的TortoiseGit克隆仓库时。当我键入地址"git@10.10.0.144:/home/git/Plugins/.git/" 时,它会自动要求输入linux盒子上“git”用户的密码。我可以将此地址从“git @”更改为系统上的任何其他用户名,也会要求输入该用户的密码。不管怎样,输入该用户的密码会继续将仓库克隆到本地系统。同时,分支、提交和拉取也会要求输入密码,如果输入正确,所有功能都能正常运行。
我已经在尝试过的Windows盒子上创建了RSA公钥文件(通过git bash),并将它们存储在gitosis的keydir文件夹中,还添加了用户的gitosis.conf文件(RSA文件的名称减去.pub后缀)。我还修改了我的sshd_config文件,包括“AllowUsers git”和系统上的我的用户名。我感到很困惑,不打算将服务器IP地址、一个用户名以及该用户名密码提供给每个需要访问该仓库的人,只是为了下载一些代码。谢谢帮助!
3个回答

2
最近我遇到了同样的问题:我可以从Cygwin克隆/推送到我的gitosis管理的repo,但TortoiseGit一直要求输入git用户(git@192.168.1.30)的密码。
最终,我通过重新安装TortoiseGit(我在安装时选择了Plink选项),然后在TortoiseGit设置中转到Network> SSH Client并将值更改为您的Cygwin ssh二进制文件(即C:\ cygwin \ bin \ ssh.exe)来使其工作。
通过更改此设置,我能够从TortoiseGit执行所有操作,并且会要求输入我在Cygwin上定义的SSH密钥的密码。
此外,请检查您的gitosis.conf文件是否包含对Cygwin可见的公共密钥,删除“.pub”扩展名:如果我的Cygwin安装显示我是myuser@myhost,则与之关联的条目在gitosis.conf上应该是myuser@myhost,并且公钥文件应该位于keydir / myuser@myhost.pub。

0
首先,用于克隆git repo的URL可以是git+ssh(如您的示例),http / https或其他各种东西。 SSH和HTTP都非常常见,人们经常使用SSH来为能够推送到repo的经过身份验证的用户,并为其他用户使用HTTP,这些用户可以克隆和拉取,但通常无法推送,或者在他们可以推送到哪里方面有限制。如果您可以在ViewGit中查看您的repo,则可能可以获取HTTP URL以克隆或拉取而无需登录。
现在,如果您想继续使用SSH,则需要查看两件事:
您需要能够使用SSH连接到服务器,而无需输入密码。如果您正在使用cygwin SSH,则应该能够执行
ssh git@10.10.0.144

连接到机器时不需要输入密码。如果您使用PuTTY,应该能够打开PuTTY,输入主机名,然后被要求输入用户名,然后无需密码即可连接(或使用相应的putty命令行)。请注意,成功完成此操作时,可能会发生两件事情中的一件。要么你会作为git用户在那台机器上得到一个普通的shell,要么你会看到一个简短的消息,类似于“SSH已正确设置为使用git。”,然后立即关闭连接。

如果您无法做到这一点,则需要在git服务器上设置公钥,并将私钥加载到Windows框中的内存中。前者可能是通过Gitosis完成的。对于后者,您将使用Pageant(如果使用Putty)或ssh-add(如果使用cygwin ssh)。如果必须,您可以先使用没有口令的密钥。这将消除手动加载密钥并输入口令的步骤。在没有密码的情况下通过SSH连接之前,请不要进入下一步。

您需要做的第二件事是配置git客户端使用和如何使用ssh。如果您可以像上面那样连接,但您的git客户端无法连接或无法克隆连接,则需要进行设置。

基本思路是告诉TortoiseGit确切的命令行如何ssh到git服务器。您可能需要检查PATH和环境变量,以确保TortoiseGit可以完全复制您使用ssh连接的方式。这个答案提供了基本思路。https://dev59.com/BWkv5IYBdhLWcg3w91hF#11249914

0

大约两周前,我在我的电脑上也遇到了同样的问题 :) 你已经完成了90%的工作。

要修复TortoiseGit,请卸载并重新安装它,但这次选择使用Putty P-Link而不是OpenSSH。然后,当您尝试推送或拉取项目时,请勾选小的“autoload putty key”选项。


那实际上使情况变得更糟。现在它要求输入用户名和密码,而之前它至少会自动识别用户名 :( - user64718
此外,输入用户名和密码也无法让我下载仓库。 - user64718

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