我已经搜索并搜索了几个小时,以解决这个问题并且没有尝试过任何工作。让我先说一下,虽然之前我使用过* nix,但我几乎都是菜鸟,所以我确定我错过了某个地方设置Git的一步。
我在网络上设置了一个Ubuntu盒子来托管我们的新Git仓库。这个盒子正在运行Git,Gitosis以及ViewGit。似乎所有东西都设置正确,我可以查看我在ViewGit中添加的repo。问题是当我在Windows中通过TortoiseGit克隆回购时。当我输入“git@10.10.0.144:/home/git/Plugins/.git/”的地址时,它会自动询问linux框中“git”用户的密码。我可以将此地址从“git @”更改为系统上的任何其他用户名,它也会询问该用户的密码。在任何情况下,输入该用户的密码都会继续将repo克隆到本地系统。分支,放置和拉取也会要求输入密码,如果输入,一切都能正常运行。
我已经在我试过的Windows框上创建了RSA pub文件(通过git bash)并将它们存储在gitosis的keydir文件夹中,以及添加用户gitosis.conf文件(名称) rsa文件减去.pub)。我还修改了我的sshd_config文件以包含“AllowUsers git”以及我在系统上的用户名。我很茫然,似乎不是一个好主意,让我想要访问此存储库的每个人都有服务器IP地址,用户名,然后是该用户名的密码,这样他们就可以下载一些代码。谢谢你的帮助!
答案 0 :(得分:2)
我最近遇到了同样的问题:我可以克隆/推送到我的gitosis管理的回购来自Cygwin,但TortoiseGit一直要求git用户的密码(git@192.168.1.30)。
最后我可以通过重新安装TortoiseGit(我在安装时选择了Plink选项)使其工作,然后在TortoiseGit设置上转到网络> SSH客户端并将值更改为您的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
答案 1 :(得分:0)
大约2个星期前,我的盒子上的这个完全相同的东西:)你已经90%了。
要修复TortoiseGit,请卸载并重新安装,但这次选择使用Putty P-Link而不是OpenSSH。然后当你去推动或拉动项目时,检查一下“autoload putty key
”这个小东西。
答案 2 :(得分:0)
首先,用于克隆git repo的URL可以是git + ssh,如示例,http / https或其他各种内容。 SSH和HTTP都非常常见,人们经常将SSH用于经过身份验证的用户,这些用户可以推送到repo,而HTTP用于其他用户,可以克隆和提取,但通常无法推送或限制他们可以推动。如果你可以在ViewGit中查看你的仓库,你可以获得一个你的仓库的HTTP网址,你可以在不登录克隆或拉动的情况下使用它。
现在,如果您想继续使用SSH,您需要注意两件事:
您需要能够使用SSH连接到服务器,而无需输入密码。如果您正在使用cygwin SSH,那么您应该可以
ssh git@10.10.0.144
并连接到该计算机而不会要求输入密码。如果你正在使用PuTTY,你应该能够打开PuTTY,输入主机名,并被要求输入用户名,但然后连接时没有密码(或使用相应的putty命令行)。请注意,成功完成此操作后,可能会发生以下两种情况之一。您可以在该计算机上获得与git用户相同的正常shell。或者,您将看到一条短消息,例如“使用git正确设置了SSH”。连接将立即关闭。
如果你不能这样做,那么你需要在git服务器上设置你的公钥,并将你的私钥加载到Windows框的内存中。前者可能是通过gitosis完成的。对于后者,如果使用cygwin ssh,你将使用Pageant(如果使用Putty)或ssh-add。如果需要,您可以先使用没有密码的密钥。这将删除您必须手动加载密钥并输入密码的步骤。直到你可以通过没有密码的SSH这样连接,不要再进行下一步了。
您需要做的第二件事是配置您的git客户端使用的ssh以及方式。如果你可以像上面那样连接,但是你的git客户端无法连接,或者没有克隆就无法连接,那么你需要设置它。
基本的想法是你告诉TortoiseGit到git服务器ssh的命令行是什么。您可能需要检查PATH和环境变量之类的内容,以确保TortoiseGit可以使用ssh准确复制连接方式。这个答案https://stackoverflow.com/a/11249914/1737957给出了基本的想法。