我已经浏览了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
在遇到明显的答案之前,我与这个问题斗争了几个小时。我遇到的问题是我在生成密钥和使用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将能够使用您之前生成的密钥。
此修复程序目前仅适用于当前窗口。要完全修复它,您需要更改环境变量。
现在,您打开的任何未来命令窗口都将具有正确的设置。
希望这可以帮助。
由于这在搜索结果中不断出现让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\
你在这里使用智能报价eval $(ssh-agent -s) && ssh-add "C:\Users\YOURNAMEHERE\.ssh\github_rsa"
而不是git clone [email protected]:RepoName/Project.git
:
“
确保使用普通的双引号。
我在“C:/ Program Files / Git / usr / bin”目录中找到了我的ssh.exe
如果安装了Git for windows,请运行Git "
:
git.exe clone -v “ssh://
^^^
你可以在Bash shell中运行ssh(Bash知道ssh的路径)
要知道ssh的确切路径,请在Bash shell中运行“where”命令:
Bash shell
你得到:
bash
我试图用上面的一些答案解决我的问题,并且由于某种原因它没有用。我确实切换到使用git扩展,这是我遵循的步骤。
$ where ssh
c:\Program Files\Git\usr\bin\ssh.exe
我想这些步骤与上面解释的相同。唯一的区别是我使用Git Extensions用户界面而不是终端。希望这有帮助。