Windows环境下基于SSH搭建Git本地服务器遇推送失败问题求助
问题解决与答疑
一、推送失败的核心修复
1. 修正远程仓库URL格式
你的远程地址存在格式错误:Windows磁盘路径通过SSH访问时,盘符后无需额外冒号。正确的URL写法为:
git remote add origin ssh://abc@abc_computer/f/code/project.git
若已添加过origin,先删除再重新添加:
git remote remove origin git remote add origin ssh://abc@abc_computer/f/code/project.git
2. 修正GIT_SSH环境变量
你错误地将GIT_SSH指向了服务器端程序sshd.exe,但Git客户端需要调用SSH客户端程序ssh.exe。修改方式:
- 打开系统环境变量设置,找到
GIT_SSH - 将值改为
C:\WINDOWS\System32\OpenSSH\ssh.exe - 重启命令行窗口让设置生效
3. 验证路径可访问性
通过SSH登录服务器后,执行ls /f/code/project.git,确认能看到config、objects等仓库核心目录,确保路径真实存在且有权限访问。
二、额外疑问解答
1. Git如何监听服务器的SSH请求?
Git本身不监听SSH请求,SSH连接由OpenSSH Server负责处理。只要服务器端OpenSSH Server服务正常运行,Git就能通过SSH协议与服务器仓库交互。你只需确保:
- OpenSSH Server服务设为自动启动并正常运行
sshd_config已启用公钥认证(你已完成此配置)
2. 如何指定Git使用的SSH客户端实例?
Git客户端使用的是ssh.exe(而非服务器端的sshd.exe),有两种指定方式:
- 环境变量法:设置
GIT_SSH环境变量指向目标ssh.exe的完整路径(如上述修复步骤) - Git配置法:执行以下全局配置命令:
git config --global core.sshCommand "C:/WINDOWS/System32/OpenSSH/ssh.exe"
若使用Git内置的OpenSSH,路径通常为C:\Program Files\Git\usr\bin\ssh.exe,可根据实际安装路径调整。
内容的提问来源于stack exchange,提问作者Tauha
相关产品推荐
相关产品推荐

