Git Bash执行git push命令遇权限拒绝问题求助
我之前也碰到过一模一样的情况,咱们一步步来搞定:
首先,你最开始遇到的主机真实性提示是正常现象——这是Git首次连接GitHub时的安全验证环节,输入yes把主机添加到已知列表就没问题,不用纠结这个。真正卡壳的是后面的Permission denied,这说明你的SSH密钥没被GitHub正确识别,导致权限不足。
下面是具体的解决步骤:
第一步:检查本地是否存在SSH密钥
打开Git Bash,输入这条命令:ls -al ~/.ssh看看输出里有没有
id_rsa(私钥)和id_rsa.pub(公钥)这两个文件。如果没有,就需要生成新的密钥对。第二步:生成新的SSH密钥(若本地没有)
执行这条命令,把邮箱替换成你GitHub账户绑定的邮箱:ssh-keygen -t rsa -b 4096 -C "your_email@example.com"按回车确认默认保存路径就行,也可以选择设置密钥密码(直接回车跳过也没问题)。
第三步:将公钥添加到你的GitHub账户
先复制公钥内容,执行:cat ~/.ssh/id_rsa.pub把输出的全部内容复制下来。然后打开GitHub,进入个人设置(Settings),找到「SSH and GPG keys」选项,点击「New SSH key」,随便填个标题,把复制的公钥粘贴到Key输入框,最后点击「Add SSH key」完成添加。
第四步:测试SSH连接是否正常
回到Git Bash,输入:ssh -T git@github.com如果看到类似
Hi [你的GitHub用户名]! You've successfully authenticated, but GitHub does not provide shell access.的提示,说明SSH连接已经正常了,这时候再执行git push -u origin master应该就能成功推送了。备选方案:改用HTTPS方式推送
要是不想折腾SSH密钥,也可以把仓库的远程地址改成HTTPS格式:git remote set-url origin https://github.com/你的用户名/你的仓库名.git之后推送时,GitHub会要求你输入用户名和个人访问令牌(注意:现在GitHub已不支持密码登录,需要在GitHub设置里生成个人访问令牌作为密码使用)。
你遇到的完整错误提示:
The authenticity of host 'github.com (192.30.253.112)' can't be established. RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. Are you sure you want to continue connecting (yes/no)?
输入yes后:Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
随后出现:git@github.com: Permission denied (publickey).
内容的提问来源于stack exchange,提问作者theburningfire

