运行git push时出错,提示Permission denied (publickey)

本文转载自博客园博主“王老头”的文章《Permission denied(publickey). fatal: Could not read from remote repository.》

 

 

    错误:  在终端(terminal)下

                      执行git clone git@github.com:accountName/repository.git命令时不出错,

                      运行git push时出错,提示如下

                      Permission denied(publickey).

                      fatal: Could not read from remote repository.

                      Please make sure you have the correct access rights and the repository exists.

 

    原因:  可能是没有与github上的账号成功建立密钥对。

 

    解决: 

                  【1】ssh-keygen -t rsa -C "youremail@example.com"

                            注意,上述youremail@example.com是指github账户的注册邮箱

补充说明ssh-keygen命令用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。本步骤使用ssh-keygen命令创建一个密钥,并指定密钥类型为rsa。在生成密钥前会先询问密钥存储路径和密码。CentOS 7系统下默认的密钥存储路径为<~/.ssh/id_rsa>,windows系统下默认的密钥存储路径为</c/Users/用户名/.ssh/id_rsa>。当然也可以自定义路径。在第【4】步中会用到密钥存储路径。

ssh-keygen生成密钥的命令(windows系统下运行的,仅为说明用。全文是基于CentOS 7下遇到和解决的问题)
图1. ssh-keygen生成密钥的命令(windows系统下运行的,仅为说明用。全文是基于CentOS 7下遇到和解决的问题)

 

                  【2】ssh -v git@github.com

                            上述命令执行后,出现的提示最后两句是

                                  No more authentication methods to try.

                                  Permission denied (publickey).

                  【3】ssh-agent  -s

                            上述命令执行后,出现的提示最后两句是

                                  SSH_AUTH_SOCK=/tmp/ssh-GTpABX1a05qH/agent.404; export SSH_AUTH_SOCK;

                                  SSH_AGENT_PID=13144; export SSH_AGENT_PID;

                                  echo Agent pid 13144;

                  【4】ssh-add ~/.ssh/id_rsa  

                            上述命令执行后,出现提示

                                  Identity added: . . . (这里是一些ssh key 文件路径)

                                  Could not open a connection to your authentication agent.

补充说明:ssh-add用于是把专用密钥添加到ssh-agent的高速缓存中。本文遇到和解决问题都是在CentOS 7系统下,所以本步骤中密钥存储位置为<~/.ssh/id_rsa>如果在第【1】步创建密钥时自定义了密钥存储路径,或默认路径不是<~/.ssh/id_rsa>,则应该作相应修改。

例如,图1所示windows系统下创建的密钥,存储在</c/Users/may/.ssh/id_rsa>,则此步骤中执行的命令应该相应改为ssh-add /c/Users/may/.ssh/id_rsa

在此,特别感谢CSDN网友易水轻寒在本文评论中的指正。

 

                  【5】若【4】中出现上述提示,则执行此步骤,否则执行【6】

                           eval `ssh-agent  -s`       回车

                           ssh-add ~/.ssh/id_rsa        回车

                  【6】cat  ~/.ssh/id_rsa.pub   (也可以用其他方式打开)  

                            上述命令执行后id_rsa.pub文件内容将输出到终端,复制里面的密钥(内容一般是以ssh-rsa 开头,以github账号的注册邮箱结尾的,全部复制下来)

                  【7】进入github账号,在settings下,选SSH and GPG keys, 点击new SSH key

图2. 添加密钥

 

                           点击new SSH key后,在title栏里自定义名字,然后将上一步复制的密钥(以ssh-rsa 开头,以github账号的注册邮箱结尾的)粘贴到此处。

                           然后点击Add SSH Key

                  【8】ssh -T git@github.com      回车

                            提示: Hi ---! You've successfully authenticated, but GitHub does not provide shell access.

                        

 

  • 11
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
回答: 出现"git@gitcode.net: Permission denied (publickey)"的错误提示是因为你在尝试连接到gitcode.net,没有正确的访问权限或者没有正确的密钥。这可能是由于以下几个原因导致的:\[1\]\[2\]\[3\] 1. 你没有正确的访问权限。请确保你有正确的访问权限,并且你的账户被授权访问gitcode.net。 2. 你没有正确的密钥。请确保你的密钥正确配置,并且与gitcode.net上的账户关联。 3. 仓库不存在。请确保你要访问的仓库在gitcode.net上存在。 如果你确定你有正确的访问权限和密钥,并且仓库也存在,但仍然遇到这个问题,你可以尝试以下解决方法: 1. 检查你的密钥配置是否正确,并确保你的密钥与gitcode.net上的账户关联。 2. 确保你的账户被授权访问gitcode.net上的仓库。 3. 检查你的网络连接是否正常,并尝试重新连接。 如果问题仍然存在,建议你联系gitcode.net的技术支持或管理员,以获取进一步的帮助和解决方案。 #### 引用[.reference_title] - *1* [git提示 permission denied (publickey)问题的解决方法](https://blog.csdn.net/qq_36667170/article/details/100894172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [gitcode 提交代码,遇到 Permission denied (publickey). 如何解决](https://blog.csdn.net/aomeng/article/details/128419531)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [【Git】错误:权限被拒绝(公钥)(Permission denied (publickey).)](https://blog.csdn.net/weixin_42282187/article/details/124820546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值