Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git一直在询问密码_Git_Gitosis - Fatal编程技术网

Git一直在询问密码

Git一直在询问密码,git,gitosis,Git,Gitosis,我找了又找,找了好几个小时,想找到一个解决这个问题的办法,但我试过的都不管用。首先,我要说的是,虽然我以前使用过*nix,但我几乎是个傻瓜,所以我肯定我在Git的设置过程中错过了一步 我在工作时在网络上设置了一个Ubuntu盒来托管我们新的Git repo。该框正在运行Git、Gitosis和ViewGit。一切似乎都设置正确,我可以查看我在ViewGit中添加的回购协议。问题是当我在Windows中通过陆龟注册克隆回购协议时。当我输入“的地址时”git@10.10.0.144:/home/gi

我找了又找,找了好几个小时,想找到一个解决这个问题的办法,但我试过的都不管用。首先,我要说的是,虽然我以前使用过*nix,但我几乎是个傻瓜,所以我肯定我在Git的设置过程中错过了一步

我在工作时在网络上设置了一个Ubuntu盒来托管我们新的Git repo。该框正在运行Git、Gitosis和ViewGit。一切似乎都设置正确,我可以查看我在ViewGit中添加的回购协议。问题是当我在Windows中通过陆龟注册克隆回购协议时。当我输入“的地址时”git@10.10.0.144:/home/git/Plugins/.git/“它会在linux框中自动询问“git”用户的密码。我可以将此地址从“git@”更改为系统上的任何其他用户名,它还将询问该用户的密码。在任何情况下,输入该用户的密码将继续将repo克隆到本地系统。此外,分支、PUT和PULL也会要求输入密码,如果输入密码,所有功能都会正常工作


我已经在我尝试过的windows设备上创建了RSA pub文件(通过git bash),并将其存储在gitosis的keydir文件夹中,还添加了users gitosis.conf文件(RSA文件的名称减去.pub)。我还修改了我的sshd_配置文件,在系统中包括“AllowUsers git”和我的用户名。我不知所措,给我想访问此存储库的每个人服务器IP地址、用户名,然后给该用户名的密码,这样他们就可以下载一些代码,这似乎不是一个好主意。谢谢你的帮助

大约两周前,我在我的盒子上也经历了同样的事情:)你已经走了90%的路了


要修复TortoiseGit,请卸载并重新安装它,但这次选择使用Putty p-Link而不是OpenSSH。然后,当你去推送或拉送项目时,检查一下小“
自动加载putty key
”的东西。

我最近遇到了同样的问题:我可以从Cygwin克隆/推送到我的gitosis管理的回购,但TortoiseGit一直在询问git用户的密码(git@192.168.1.30)

最后,我可以通过重新安装Ortoisegit(我在安装时选择了Plink选项)使其工作,然后在Ortoisegit设置上转到Network>SSH Client并将值更改为Cygwin SSH二进制文件(即C:\Cygwin\bin\SSH.exe)

通过改变这个,我能够从Ortoisegit执行所有操作,并且我被要求输入密码,即我在Cygwin上定义的SSH密钥


另外,检查gitosis.conf是否包含Cygwin可见的公钥,删除“.pub”扩展名:如果我的Cygwin安装显示我是myuser@myhost,gitosis.conf上的相关条目应为myuser@myhost并且带有公钥的文件应位于keydir上/myuser@myhost.pub

首先,用于克隆git repo的URL可以是git+ssh,如您的示例中所示,http/https或其他各种内容。SSH和HTTP都非常常见,人们通常对经过身份验证的用户使用SSH,这些用户将能够推送到repo,而对其他用户使用HTTP,这些用户可以克隆和拉,但通常不能推,或者对推送到的位置有限制。如果您可以在ViewGit中查看您的repo,您可能会获得一个用于repo的HTTP url,您无需登录即可使用它进行克隆或拉取

现在,如果您想继续使用SSH,有两件事需要注意:

您需要能够使用SSH连接到服务器,而无需输入密码。如果您使用的是cygwin SSH,那么您应该能够

ssh git@10.10.0.144
在不需要密码的情况下连接到该机器。如果您正在使用PuTTY,您应该能够打开PuTTY,输入主机名,并被要求输入用户名,但随后无需密码即可连接(或使用相应的PuTTY命令行)。请注意,当您成功地执行此操作时,可能会发生以下两种情况之一。要么作为git用户在该机器上获得一个普通shell。或者,您将看到一条短消息,类似于“SSH已正确设置为使用git”,并且连接将立即关闭

如果您不能做到这一点,那么您需要在git服务器上设置公钥,并将私钥加载到Windows机箱中的内存中。前者可能是通过关节炎造成的。对于后者,您将使用Pageant(如果使用Putty)或ssh add(如果使用cygwin-ssh)。如果需要,可以先使用不带密码短语的密钥。这将删除您必须手动加载密钥并输入密码短语的步骤。在您可以通过SSH这样连接而无需密码之前,不要进入下一步

您需要做的第二件事是配置git客户端使用的ssh以及如何使用。如果您可以如上所述进行连接,但是您的git客户端无法连接,或者在没有克隆的情况下无法连接,那么您需要进行设置


基本思想是,您确切地告诉TortoiseGit,到git服务器的ssh命令行是什么。您可能需要检查路径和环境变量,以确保Ortoisegit能够准确地复制您使用ssh进行连接的方式。这个答案给出了基本的想法。

这实际上让事情变得更糟。现在它需要用户名和密码,就像以前一样,它至少自己算出了用户名:(而且,输入用户名和密码不再允许我下载repo。