You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多SSH密钥连接GitLab仓库失败,克隆时报主机不存在求助

解决Windows10 Git Bash同时连接两个GitLab仓库的克隆问题

看起来你已经把SSH配置的核心逻辑做对了(测试SSH连接能正确识别两个用户身份),但Git克隆时出现「主机不存在」的错误,大概率是SSH配置的权限问题或者Git使用的SSH客户端与你测试的不一致导致的,下面是具体的排查和修复步骤:

1. 修复SSH配置文件及文件夹的权限

Windows下的SSH对.ssh文件夹和配置文件的权限要求很严格,如果权限过于宽松,SSH会直接忽略配置文件。在Git Bash里执行以下命令修正权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/config

这会把.ssh文件夹设置为仅当前用户可读写执行,config文件设置为仅当前用户可读写,符合SSH的安全校验要求。

2. 启用IdentitiesOnly yes避免密钥冲突

你的SSH配置里注释掉了IdentitiesOnly yes,这行配置的作用是强制SSH仅使用你指定的IdentityFile,而不是自动尝试所有可用的密钥。虽然你单独测试SSH时成功,但克隆Git仓库时可能因为密钥尝试顺序问题导致识别异常。把这行的注释去掉,修改后的配置如下:

Host gitlab-personal
HostName gitlab.com
User git
LogLevel DEBUG3
PreferredAuthentications publickey
IdentityFile ~/.ssh/personal
IdentitiesOnly yes

Host gitlab-work
HostName gitlab.com
User git
LogLevel DEBUG3
PreferredAuthentications publickey
IdentityFile ~/.ssh/work
IdentitiesOnly yes

3. 确保Git使用的是你测试的SSH客户端

Windows系统自带OpenSSH,而Git Bash也自带一套独立的SSH客户端。如果Git默认使用系统的OpenSSH,可能会出现兼容性问题(比如找不到你在Git Bash里配置的.ssh/config)。

先检查当前Git使用的SSH命令:

git config --get core.sshCommand

如果返回空或者显示系统路径(比如C:\Windows\System32\OpenSSH\ssh.exe),可以设置Git强制使用Git Bash自带的SSH:

git config --global core.sshCommand "C:/Program Files/Git/usr/bin/ssh.exe"

注意路径要用正斜杠,可根据你Git的实际安装路径调整。

4. 测试Git连接

完成以上步骤后,先测试Git能否正确识别仓库:

git ls-remote git@gitlab-personal:user1/personal.git

如果能返回仓库的引用信息,说明配置正常,再执行git clone就没问题了。

如果还是有问题,可以尝试用带调试日志的命令排查:

GIT_SSH_COMMAND="C:/Program Files/Git/usr/bin/ssh.exe -v" git clone git@gitlab-personal:user1/personal.git

这会输出详细的SSH调试日志,方便定位剩余问题。

内容的提问来源于stack exchange,提问作者eleftrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:08:08