5

我已经搜索了好几个小时,寻找解决这个问题的方法,但我没有尝试过任何工作。让我先说一下,虽然我以前使用过 *nix,但我几乎是个菜鸟,所以我确定我错过了某个地方设置 Git 的步骤。

我在工作的网络上设置了一个 Ubuntu 机器来托管我们新的 Git 存储库。盒子正在运行 Git、Gitosis 和 ViewGit。一切似乎都设置正确,我可以查看我在 ViewGit 中添加的 repo。问题是当我在 Windows 中通过 TortoiseGit 克隆 repo 时。当我输入“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 地址、用户名和该用户名的密码似乎不是一个好主意,这样他们就可以下载一些代码。谢谢您的帮助!

4

3 回答 3

2

我最近遇到了同样的问题:我可以从 Cygwin 克隆/推送到我的 gitosis 管理的仓库,但 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

于 2011-03-31T00:34:24.737 回答
0

大约 2 周前在我的盒子上经历了同样的事情 :) 你已经完成了 90% 的路。

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

于 2010-07-02T02:31:02.227 回答
0

首先,您用于克隆 git 存储库的 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 盒子的内存中。前者可能是通过 gitosis 完成的。对于后者,如果使用 cygwin ssh,您将使用 Pageant(如果使用 Putty)或 ssh-add。如果需要,您可以首先使用没有密码的密钥。这将删除您必须手动加载密钥并输入密码的步骤。在您无需密码即可通过 SSH 进行此类连接之前,请不要进行下一步。

您需要做的第二件事是配置您的 git 客户端使用的 ssh 以及如何使用。如果你可以如上连接,但是你的 git 客户端无法连接,或者没有克隆就无法连接,那么你需要设置这个。

基本的想法是你告诉 TortoiseGit 用 ssh 连接到 git 服务器的命令行是什么。您可能需要检查 PATH 和环境变量之类的内容,以确保 TortoiseGit 可以准确复制您使用 ssh 连接的方式。这个答案https://stackoverflow.com/a/11249914/1737957给出了基本思路。

于 2017-09-12T07:27:47.723 回答