Windows 10环境下如何指定Git使用的SSH代理?
解决Git默认使用自带ssh-agent而不使用Windows系统OpenSSH代理的问题
我之前也碰到过一模一样的状况——密钥都加到Windows系统的OpenSSH代理里了,结果Git偏偏认准自己带的ssh-agent,导致密钥完全不生效。其实有两种靠谱的解决方法,你可以根据需求选:
方法一:直接指定Git使用Windows系统的SSH工具(推荐,精准控制)
这种方法只针对Git生效,不会影响系统其他程序的SSH调用:
- 先检查当前Git的SSH配置,打开终端执行:
如果返回的是git config --get core.sshCommandC:/Program Files/Git/usr/bin/ssh.exe这类Git自带路径,就说明需要修改配置。 - 配置全局Git使用系统OpenSSH(所有仓库都生效):
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe" - 要是只想让某个特定仓库用系统SSH,先进入该仓库目录,再执行:
git config core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe" - 验证配置是否成功:再次执行
git config --get core.sshCommand,返回系统OpenSSH的路径就说明配置生效了。
方法二:调整系统环境变量顺序(全局生效)
如果希望整个系统优先使用Windows自带的OpenSSH(包括Git),可以修改环境变量:
- 打开系统的「环境变量」设置,找到
Path变量。 - 把
C:\Windows\System32\OpenSSH这条路径移到C:\Program Files\Git\usr\bin的前面。 - 保存后重启终端,再执行
where ssh-agent,就能看到系统的路径排在第一位,Git也会自动使用这个代理。
小提示
修改完成后不用重启电脑,只要在新的终端窗口操作Git,它就会自动调用Windows系统的OpenSSH代理,读取你之前用ssh-add添加的密钥了。
内容的提问来源于stack exchange,提问作者Akash Kumar




