VS Code中单个项目Git Pull失败问题求助
SSH密钥签名失败导致Git拉取GitHub仓库失败的故障排查求助
在戴尔Latitude上运行Ubuntu 24.04.1 LTS系统,使用VS Code连接GitHub开发两个独立项目,路径分别为/home/website/mtbc和/home/website/blogApp。其中blogApp一切正常,但mtbc项目在提交后执行同步变更时出现问题,触发git pull --tags origin main命令时返回以下错误:
git pull --tags origin main sign_and_send_pubkey: signing failed for RSA "/home/a___t/.ssh/id_rsa" from agent: agent refused operation sign_and_send_pubkey: signing failed for ED25519 "/home/allentrev/.ssh/id_ed25519" from agent: agent refused operation git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
已按照GitHub官方SSH故障排查指南完成以下操作:
- 未使用Sudo,密钥以个人用户名生成并添加至GitHub;
- 确认远程连接地址为
git@github.com,执行ssh -vT git@github.com仍返回密钥签名失败、权限拒绝的错误; - 执行
ssh-add -l -E sha256时提示密钥签名失败; - 公钥已添加至GitHub账户,执行
ssh-add -l可看到对应RSA和ED25519密钥信息,且均在GitHub的SSH密钥列表中; - 修改密钥权限为RW并更新ssh-agent,重新生成新密钥添加至GitHub,但问题仍未解决。
进一步排查方向
检查SSH_AUTH_SOCK环境变量
执行echo $SSH_AUTH_SOCK,确认输出的套接字路径存在且权限正确。若路径无效,重启ssh-agent并重新添加密钥:eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 # 替换为你的密钥文件名严格校验密钥文件权限
确保密钥文件权限为600,父目录权限为700(这是SSH要求的最小权限):chmod 600 ~/.ssh/id_ed25519 ~/.ssh/id_rsa chmod 700 ~/.ssh排查密钥管理工具冲突
Ubuntu 24.04默认使用gnome-keyring托管SSH密钥,可能存在签名异常。尝试临时禁用gnome-keyring,直接使用ssh-agent测试:systemctl --user stop gnome-keyring-daemon eval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519 ssh -T git@github.com检查mtbc项目的独立Git配置
确认mtbc项目未单独配置特殊的远程地址或SSH命令:cd /home/website/mtbc git remote -v git config --local core.sshCommand若存在自定义
core.sshCommand,尝试删除:git config --local --unset core.sshCommand测试单个密钥连接
暂时清空所有已添加的密钥,只添加一个密钥(优先ED25519)测试连接:ssh-add -D ssh-add ~/.ssh/id_ed25519 ssh -T git@github.com
内容的提问来源于stack exchange,提问作者allent
相关产品推荐
相关产品推荐

