在Windows上使用SSH进行Git

问题描述 投票:39回答:6

我已经浏览了excellent guide provided by Tim Davis,它是关于将Git配置为在Windows下使用SSH以生成Git服务器以便为我的DVCS提供主要位置。

我正在为我的项目创建一个克隆。到目前为止,我已经完成了所有步骤,但我不断从TortoiseGit获取此信息:

git.exe clone -v “ssh://[email protected]:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”

bash: [email protected]: command not found
Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
Success

没有任何东西被克隆。

BETWEEN:qazxsw poi就在这个消息出现之前出现并问我:“qazxsw poi”(我认为这个信息在命令中给出,即:TortoisePLink

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

login as:

我也尝试使用Putty的plink而不是Administrator@blahblah(在Git和echo $HOME /c/SSH/home/Administrator 的安装中)。这次错误被缩小到:

TortoisePLink
windows git ssh tortoisegit
6个回答
91
投票

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

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

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

TortoiseGit

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

接下来,您需要确定git使用的ssh。找到这个:

git.exe clone -v “ssh://[email protected]: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

现在你看到了问题。

要纠正这个,只需执行:

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

要检查是否应用了更改:

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

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

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

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

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

希望这可以帮助。


12
投票

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

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

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

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

2.从包含的bash shell(对我来说,安装在:C:\set GIT_SSH GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe

https://git-scm.com/download/win到您想要保存repo的根级别(类似于:C:\Program Files\Git\git-bash.exe),以及

类型:

cd

3.键入:(来自repo的SSH链接)

C:\code\github\


7
投票

你在这里使用智能报价eval $(ssh-agent -s) && ssh-add "C:\Users\YOURNAMEHERE\.ssh\github_rsa"而不是git clone [email protected]:RepoName/Project.git

确保使用普通的双引号。


6
投票

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


1
投票

如果安装了Git for windows,请运行Git "

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

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

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

Bash shell

你得到:

  bash

0
投票

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

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

我想这些步骤与上面解释的相同。唯一的区别是我使用Git Extensions用户界面而不是终端。希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.