Git仓库配置访问密钥后无法正常访问问题求助
问题排查思路
报错核心特征:SSH将私钥路径
/home/devuser/.ssh2/id_rsa_2048_b识别为待连接的主机名,而非身份验证密钥文件路径。
- 核查devuser用户的SSH客户端配置:
打开devuser家目录下的~/.ssh/config文件,以及全局SSH配置/etc/ssh/ssh_config,检查针对host.fqdn.net的配置项是否写反了HostName和IdentityFile参数,错误配置示例如下:
修正配置为标准格式即可:Host host.fqdn.net HostName /home/devuser/.ssh2/id_rsa_2048_b # 错误:此处应该填写域名host.fqdn.net IdentityFile git@host.fqdn.net # 错误:此处应该填写私钥路径Host host.fqdn.net Port 6999 HostName host.fqdn.net IdentityFile /home/devuser/.ssh2/id_rsa_2048_b User git - 打印SSH连接调试日志确认配置读取逻辑:
执行命令ssh -v -p 6999 git@host.fqdn.net,查看输出中Connecting to <xxx> port 6999的<xxx>字段,如果确实是私钥路径,即可确认是配置读取错误导致的问题。 - 核查密钥文件权限合法性:
devuser用户的私钥文件/home/devuser/.ssh2/id_rsa_2048_b权限必须设置为600,上层.ssh2目录权限必须设置为700,且所属用户和用户组均为devuser,权限异常会导致SSH读取密钥失败,触发异常的配置 fallback 逻辑。 - 手动指定私钥路径测试克隆:
执行以下命令强制指定私钥进行克隆,如果可以正常执行,即可完全排除密钥本身、Bitbucket权限的问题,锁定问题出在本地SSH配置:git clone -c core.sshCommand="ssh -i /home/devuser/.ssh2/id_rsa_2048_b" ssh://git@host.fqdn.net:6999/dev-project/test-repo.git - 核查Git相关环境变量:
执行命令env | grep GIT_SSH检查是否存在GIT_SSH_COMMAND或者GIT_SSH环境变量被错误赋值,错误的环境变量优先级高于SSH配置文件,也会导致该问题。
内容的提问来源于stack exchange,提问作者user3539927
相关产品推荐
相关产品推荐

