VS Code关联GitHub提交代码遇权限错误,SSH密钥配置无效求助
解决Git@GitHub.com: Permission denied (publickey) 错误的实操步骤
以下是针对该问题的具体排查和解决步骤,均为实际操作中验证有效的方案:
直接测试SSH连接状态
在终端运行:ssh -T git@github.com该命令会返回SSH连接的具体问题,比提交代码时的报错更精准。
确认本地SSH密钥的存在与权限
- 查看本地.ssh目录下的密钥文件:
需要看到类似ls -la ~/.sshid_rsa/id_ed25519(私钥)和id_rsa.pub/id_ed25519.pub(公钥)的文件对。 - 修正密钥文件的权限(权限错误是高频坑点):
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed25519 # 替换为你的私钥文件名 chmod 644 ~/.ssh/id_ed25519.pub
- 查看本地.ssh目录下的密钥文件:
核对GitHub上的公钥是否完全匹配
- 复制本地公钥的完整内容:
确保复制整一行内容,从cat ~/.ssh/id_ed25519.pubssh-ed25519(或ssh-rsa)开头到最后的备注/邮箱,不要遗漏或多添字符。 - 登录GitHub,进入「Settings」→「SSH and GPG keys」,检查已添加的公钥是否和你复制的内容完全一致,无拼写错误或截断。
- 复制本地公钥的完整内容:
重启SSH代理并添加私钥
代理未加载密钥是常见根源:- 启动SSH代理:
eval "$(ssh-agent -s)" - 添加私钥到代理:
若之前添加过无效,可先清空代理:ssh-add ~/.ssh/id_ed25519 # 替换为你的私钥文件名ssh-add -D,再重新添加。
- 启动SSH代理:
确认Git远程仓库地址正确
检查当前仓库的远程地址是否为SSH格式:git remote -v若显示HTTPS地址(
https://github.com/xxx/xxx.git),而你想用SSH连接,执行以下命令修改:git remote set-url origin git@github.com:你的GitHub用户名/仓库名.git
完成以上步骤后,再次运行ssh -T git@github.com,若看到Hi [你的用户名]! You've successfully authenticated, but GitHub does not provide shell access.的提示,说明SSH连接已正常,此时再尝试提交代码即可。
内容的提问来源于stack exchange,提问作者eddie
相关产品推荐
相关产品推荐

