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

配置SSH公钥后GitLab git clone仍要求输入密码的解决方法

问题排查与解决步骤

1. 修正SSH配置的拼写错误

你的~/.ssh/config中Preferredauthentications存在大小写拼写错误,SSH配置关键字是大小写敏感的,正确配置应为:

Host my_host.tld
        Hostname my_host.tld
        IdentityFile /root/.ssh/gitlab_key
        PreferredAuthentications publickey

2. 检查SSH相关文件的权限

SSH对.ssh目录及文件权限要求严格,权限过松会直接忽略密钥文件:

  • 设置.ssh目录权限为700:
    chmod 700 ~/.ssh
    
  • 设置config文件权限为600:
    chmod 600 ~/.ssh/config
    
  • 设置密钥文件gitlab_key权限为600:
    chmod 600 /root/.ssh/gitlab_key
    

3. 验证Git的SSH连接细节

执行带调试信息的Git克隆命令,查看是否加载了正确的SSH配置和密钥:

GIT_SSH_COMMAND="ssh -v" git clone git@my_host.tld:username/project.git

重点看输出中是否出现Reading configuration data /root/.ssh/config以及是否尝试使用gitlab_key密钥。

4. 检查Git的自定义SSH命令配置

确认Git是否设置了覆盖默认SSH行为的参数:

git config --global core.sshCommand

如果有输出内容,说明存在自定义配置,可清空该配置恢复默认:

git config --global --unset core.sshCommand

5. 确认执行Git的用户与SSH配置所属用户一致

你的SSH配置和密钥存放在/root/.ssh目录下,如果执行Git命令的是普通用户(非root),它会读取自身家目录下的.ssh配置而非root的。这种情况下需要将密钥和配置复制到对应普通用户的~/.ssh目录中。

6. 检查SSH代理密钥加载情况(若使用代理)

如果开启了ssh-agent,确认密钥已被加载:

ssh-add -l

若未看到gitlab_key的指纹,手动添加密钥:

ssh-add /root/.ssh/gitlab_key

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 13:22:42