在Windows上使用SSH进行Git

我已经阅读了Tim Davis提供的出色指南,该指南涉及将Git配置为在Windows下与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出现在此消息出现之前,并询问我:“ TortoisePLink”(我认为此信息是在命令中给出的,即:2998789683968968214017。

我的home变量设置为正确的位置:从Git Bash外壳程序中:

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
pankar asked 2020-08-06T02:05:21Z
6个解决方案
93 votes

我为这个问题奋战了几个小时,然后才找到明显的答案。 我遇到的问题是,在生成密钥和使用git之间,我正在使用不同的ssh实现。

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

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

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变量,然后按Edit ...按钮。
  6. 更新变量值。
  7. 按确定关闭所有窗口

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

希望这可以帮助。

Todd answered 2020-08-06T02:06:46Z
13 votes

由于这会一直出现在使git和github在Windows上使用SSH的搜索结果中(并且因为我不需要上面的指南,所以),所以我添加了以下简单解决方案。

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

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

[HTTPS://git-三重门.com/download/win]

2.从随附的bash外壳(对我而言,安装在:C:\Program Files\Git\git-bash.exe

git clone git@github.com:RepoName/Project.git到要保存回购协议的根目录(类似:2999871819993023489),以及

类型:

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

3.键入:(来自存储库的SSH链接)

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

jaygeek answered 2020-08-06T02:07:37Z
7 votes

您在这里使用智能报价而不是"

git.exe clone -v “ssh://
                ^^^ 

确保使用普通的旧双引号。

J-16 SDiZ answered 2020-08-06T02:08:02Z
6 votes

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

user3183915 answered 2020-08-06T02:08:22Z
1 votes

如果安装了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
M.Hassan answered 2020-08-06T02:08:55Z
0 votes

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

  1. 我去了C:\Program Files\Git\usr\bin\ssh.exe
  2. 将此值设置为C:\Program Files\Git\usr\bin\ssh.exe
  3. 应用

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

Dalsier answered 2020-08-06T02:09:32Z
translate from https://stackoverflow.com:/questions/2499331/git-with-ssh-on-windows