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

在VS Code中使用Git时反复出现"Permission Denied: (Public Key)"错误怎么办?

解决VS Code中Git拉取/推送时的"Permission Denied (Public Key)"错误

别慌,这个问题在Git通过SSH连接GitHub时太常见了,我帮你一步步排查解决:

  • 第一步:检查本地是否有SSH密钥对
    打开终端,运行命令查看已有的SSH密钥:

    ls -la ~/.ssh
    

    如果输出里没有id_ed25519/id_ed25519.pub或者id_rsa/id_rsa.pub这类文件,说明你还没生成密钥。那咱们生成一个新的:

    ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱"
    

    按回车默认保存路径,再按两次回车跳过密码设置(也可以设置密码增强安全性)。

  • 第二步:把公钥添加到GitHub账户
    先复制公钥内容,运行:

    cat ~/.ssh/id_ed25519.pub  # 如果是RSA密钥就换成id_rsa.pub
    

    全选复制输出内容,打开GitHub,点击右上角头像→Settings→SSH and GPG keys→New SSH key,随便填个Title,把公钥粘贴到Key框里,点击Add SSH key保存。

  • 第三步:测试SSH连接是否正常
    回到终端,运行:

    ssh -T git@github.com
    

    如果看到类似Hi 你的GitHub用户名! You've successfully authenticated, but GitHub does not provide shell access.的提示,说明SSH连接已经没问题了。

  • 第四步:确认VS Code用的Git环境正确
    有时候VS Code和终端用的不是同一个Git环境,导致密钥没生效。打开VS Code设置(快捷键Ctrl+,),搜索git.path,确认路径和终端里which git输出的路径一致。如果不一致,改成终端里的Git路径就行。

  • 第五步:让SSH Agent加载你的密钥
    有些系统不会自动加载SSH密钥,咱们手动操作:

    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519  # RSA密钥换成id_rsa
    

    完成后再去VS Code里尝试拉取/推送,应该就能正常操作了。

  • 额外检查:确认远程仓库URL是SSH格式
    运行git remote -v查看远程地址,如果是HTTPS格式(比如https://github.com/username/repo.git),可以改成SSH格式:

    git remote set-url origin git@github.com:你的用户名/你的仓库名.git
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:49:19