51

我已经阅读了Tim Davis 提供的优秀指南,该指南是关于在 Windows 下配置 Git 以使用 SSH 以生成 Git 服务器,以便为我的 DVCS 提供主要位置。

我正在为我的项目创建克隆。到目前为止,我已经完成了所有步骤,但我一直从 TortoiseGit 得到这个:

git.exe clone -v “ssh://Administrator@127.0.0.1:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

bash: Administrator@127.0.0.1: command not found
Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
Success

没有任何东西被克隆。

顺便说一句:TortoisePLink在此消息出现之前出现并询问我:“<code>login as:”(我认为此信息是在命令中给出的,即:Administrator@blahblah.

我的 home 变量设置为正确的位置:来自 Git Bash shell:

echo $HOME
/c/SSH/home/Administrator

我也尝试过使用 Putty 的 plink 而不是TortoisePLink(在 Git 和TortoiseGit的安装中)。这次错误被缩小到:

git.exe clone -v “ssh://Administrator@127.0.0.1:22/c:/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
4

6 回答 6

111

在偶然发现明显的答案之前,我与这个问题斗争了几个小时。我遇到的问题是我在生成密钥和使用 git 之间使用了不同的 ssh 实现。

我从命令提示符使用 ssh-keygen 来生成我的密钥,但是当我尝试“git clone ssh://...”时,我得到了与您相同的结果,提示输入密码和消息“致命:远程结束意外挂断”。

通过执行 Windows“where”命令确定正在使用的 ssh 窗口。

C:\where ssh
C:\Program Files (x86)\Git\bin\ssh.exe

第二行告诉您将执行哪个确切的程序。

接下来,您需要确定 git 正在使用哪个 ssh。通过以下方式查找:

C:\set GIT_SSH
GIT_SSH=C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe

现在你看到了问题。

要更正此问题,只需执行:

C:\set GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe

要检查是否应用了更改:

C:\set GIT_SSH
GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe

现在 git 将能够使用您之前生成的密钥。

到目前为止,此修复仅适用于当前窗口。要完全修复它,您需要更改环境变量。

  1. 打开 Windows 资源管理器
  2. 右键单击计算机并选择属性
  3. 单击左侧的高级系统设置链接
  4. 单击环境变量... 按钮
  5. 在系统变量部分选择 GIT_SSH 变量并按下编辑...按钮
  6. 更新变量值。
  7. 按 OK 关闭所有窗口

现在,您将来打开的任何命令窗口都将具有正确的设置。

希望这可以帮助。

于 2012-01-03T13:38:52.403 回答
21

由于这在使 git 和 github在 Windows 上与 SSH 一起工作的搜索结果中不断出现(并且因为我不需要上面指南中的任何内容),所以我添加了以下简单的解决方案。

(微软表示他们正在努力将 SSH 添加到 Visual Studio,而 GitHub for Windows 仍然不支持 SSH……)

1.我安装了“git for Windows”(包括 ssh 和一个 bash shell)

https://git-scm.com/download/win

2.从包含的 bash shell(对我来说,安装在C:\Program Files\Git\git-bash.exe:)

cd到您希望保存存储库的根级别(例如:)C:\code\github\,以及

类型:

eval $(ssh-agent -s) && ssh-add "C:\Users\YOURNAMEHERE\.ssh\github_rsa"

3.输入 (repo 中的 SSH 链接)

git clone git@github.com:RepoName/Project.git

于 2016-06-03T15:26:49.007 回答
9
于 2010-04-12T07:20:59.963 回答
6

我在“C:/Program Files/Git/usr/bin”目录中找到了我的 ssh.exe

于 2017-11-08T20:06:35.230 回答
4

如果安装了 Windows 版 Git,请运行 Git Bash shell

  bash

您可以在 Bash shell 中运行 ssh(Bash 知道 ssh 的路径)

要知道 ssh 的确切路径,请在 Bash shell 中运行“where”命令:

  $ where ssh

你得到:

  c:\Program Files\Git\usr\bin\ssh.exe
于 2018-08-27T16:53:38.793 回答
2

我试图用上面的一些答案来解决我的问题,但由于某种原因它不起作用。我确实切换到使用 git 扩展,这是我遵循的步骤。

  1. 我去了Tools -> Settings -> SSH -> Other ssh client
  2. 将此值设置为C:\Program Files\Git\usr\bin\ssh.exe
  3. 申请

我猜这个步骤和上面解释的一样。唯一的区别是我使用了 Git 扩展用户界面而不是终端。希望这有帮助。

于 2019-03-07T04:21:40.880 回答