windows中git无法通过ssh连接github
1 问题描述
在windows中,使用ssh-keygen -t rsa -C "<your-email>@qq.com"
生成ssh公钥和私钥,并按照要求将公钥添加到github中。此时,使用命令ssh -T git@github.com
可以得到正确输出Hi xxx! You've successfully authenticated, but gitHub does not provide shell access.
,但是使用git通过ssh克隆仓库失败。
2 问题原因
git捆绑了自己的ssh可执行文件,windows也捆绑了一个ssh可执行文件。
在gitbash中输入which ssh
可以获取git中ssh可执行文件的路径,一般为/usr/bin/ssh
。
在PowerShell中输入Get-Command
可以获取windows中ssh可执行文件的路径,一般为C:\windows\System32\OpenSSH\ssh.exe
。
在windows执行ssh -T git@github.com
时和使用git克隆仓库时,二者调用了不同的ssh可执行文件,最后导致一个成功但另一个失败。
3 解决方法
在命令行中执行以下命令:git config --global core.sshCommand C:/windows/System32/OpenSSH/ssh.exe
。
这将提示所有git
命令使用与您的ssh
命令相同的 SSH 客户端。