在Windows上使用SSH进行Git

pan*_*kar 42 windows git ssh tortoisegit

我已经阅读了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
Run Code Online (Sandbox Code Playgroud)

没有任何东西被克隆.

BTW:TortoisePLink在此消息出现之前出现并询问我:" login as:"(我认为此信息在命令中给出,即:Administrator@blahblah.

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

echo $HOME
/c/SSH/home/Administrator
Run Code Online (Sandbox Code Playgroud)

我也尝试过使用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
Run Code Online (Sandbox Code Playgroud)

小智 94

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

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

通过执行Windows"where"命令确定正在使用的ssh窗口.

C:\where ssh
C:\Program Files (x86)\Git\bin\ssh.exe
Run Code Online (Sandbox Code Playgroud)

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

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

C:\set GIT_SSH
GIT_SSH=C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe
Run Code Online (Sandbox Code Playgroud)

现在你看到了问题.

要纠正这个,只需执行:

C:\set GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe
Run Code Online (Sandbox Code Playgroud)

要检查是否应用了更改:

C:\set GIT_SSH
GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

希望这可以帮助.

  • 现在 OpenSSH 已包含在 Windows 10 中,解决此问题的答案是告诉 git 使用 OpenSSH。默认情况下,Git 在 Windows 上使用自己捆绑的 ssh.exe。要自行修复,请使用:“setx GIT_SSH C:\Windows\System32\OpenSSH\ssh.exe”。要修复计算机上的每个人,请将“/M”标志传递给“setx”。 (3认同)

jay*_*eek 14

由于这在搜索结果中不断出现使得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外壳(其对我来说,安装了在:C:\Program Files\Git\git-bash.exe)

cd到你希望你的repo保存的根级别(如:)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

  • @Fractalf这是它的设计方式.`ssh-agent -s`生成shell代码,`eval'$(ssh-agent -s)"`运行生成的代码. (3认同)

J-1*_*DiZ 7

你使用的是智能报价而不是"这里:

git.exe clone -v “ssh://
                ^^^ 
Run Code Online (Sandbox Code Playgroud)

确保使用普通的双引号.


小智 6

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