SSH可连接但Git无法找到内网Windows服务器上的仓库
排查Git SSH访问Windows内网服务器仓库失败的方案
1. 确认服务器端裸仓库的路径与权限
- 在服务器上用命令生成标准裸仓库,避免手动建目录出错:打开Git Bash执行
git init --bare C:\gitTest.git(C盘根目录示例)或git init --bare C:\Users\Admin\gitTest.git(Admin用户目录示例) - 检查仓库文件夹权限:右键文件夹→属性→安全选项卡,确保SSH登录用的Admin用户拥有读/写/修改权限,避免Git操作因权限被拒
- 在服务器Git Bash里执行
ls -la /c/gitTest.git,确认能看到HEAD、objects、refs等裸仓库必备文件
2. 修正Git远程URL的路径格式
Windows路径在SSH URL里需要转义为正斜杠,且盘符要小写或大写加正斜杠,正确格式示例:
- C盘根目录仓库:
ssh://admin@ipaddress/C/gitTest.git或ssh://admin@ipaddress/c/gitTest.git - Admin用户目录仓库:
ssh://admin@ipaddress/C/Users/Admin/gitTest.git - 可先SSH登录服务器,用
pwd查看裸仓库的绝对路径(Git Bash输出为/c/gitTest.git这类格式),直接复用这个路径到URL中
3. 验证服务器SSH会话的Git环境
- 在客户端执行
ssh admin@ipaddress "git --version",确认服务器已安装Git且在SSH会话的PATH环境变量中。若提示git: command not found,需将Git的bin目录(如C:\Program Files\Git\bin)添加到Windows系统PATH,然后重启SSH服务:net stop sshd && net start sshd - 执行
ssh admin@ipaddress "ls -la /c/gitTest.git",若能列出仓库文件,说明路径与权限无问题;若提示文件不存在,需检查URL中的路径是否与服务器实际路径一致
4. 开启SSH调试定位具体错误
在客户端Git Bash中执行调试命令,查看详细交互日志:
GIT_SSH_COMMAND="ssh -v" git clone ssh://admin@ipaddress/C/gitTest.git
从输出中可排查路径解析、权限校验、Git命令执行等环节的具体问题
内容的提问来源于stack exchange,提问作者user25231493
相关产品推荐
相关产品推荐

