ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Permission denied (publickey). fatal: Could not read from remote repository.问题法解决方案

2021-05-21 22:58:55  阅读:220  来源: 互联网

标签:remote centos repository Permission 16 rsa gitee ssh root


Permission denied (publickey). fatal: Could not read from remote repository.问题法解决方案

0 写这个的原因是,本来很简单的一个问题,我看了一下网上的帖子,大部分都是在ctrl-c/v加胡说八道,也不注明出处,诶…


1 报错分析

今天在gitee上面准备clone一个项目,由于我使用的云服务器很久没用了,出现了以下报错:

[root@VM-4-16-centos home]# git clone git@gitee.com:heiyueGit/springboot-flowable.git demo-app
Cloning into 'demo-app'...
Permission denied (publickey).
fatal: Could not read from remote repository.

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

原因翻译过来就是:“拒绝服务(公共秘钥)”,也就是说由于ssh公钥的某些问题导致连接失败,因此我查看了以下我的gitee的ssh设置(gitee网页点头像-设置-ssh公钥)如下:

在这里插入图片描述
……发现以前的公钥信息被删除了,这就是导致连接失败的原因。
接下来,我们在使用ssh连接一下测试

[root@VM-4-16-centos .ssh]# ssh -t git@gitee.com
Permission denied (publickey).
[root@VM-4-16-centos .ssh]# ssh -tv git@gitee.com
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
……(省略)……
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Trying private key: /root/.ssh/id_ecdsa
debug1: Trying private key: /root/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

……大致意思就是找来找去都没找到publickey,所以连接会失败

2 解决方案

既然找到了原因,那我就不具体分析了,直接重新生成ssh密钥对就行了,然后把该密钥对的公钥部分设置到上面那个地方就行了!
操作过程我尽力做到面面俱到,因此下面的操作兼顾了win和linux平台,兼顾github和gitee!

2.1 Linux

[root@VM-4-16-centos ~]# cd ~/.ssh  
[root@VM-4-16-centos .ssh]# ll
total 0
[root@VM-4-16-centos .ssh]# ssh-keygen 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:aD92e78/rhnpxF2DSVmMkJfEMvTbJWnMNxkczakdKJk root@VM-4-16-centos
The key's randomart image is:
+---[RSA 2048]----+
|          .oB.*=+|
|           E.Oo*=|
|            =+Oo+|
|       .    .o=+o|
|      o S    + o.|
|     . .    . o o|
|        + .  = . |
|       . o .+ o. |
|          .. ==+o|
+----[SHA256]-----+
[root@VM-4-16-centos .ssh]# ll
total 8
-rw------- 1 root root 1679 May 21 22:20 id_rsa
-rw-r--r-- 1 root root  401 May 21 22:20 id_rsa.pub
[root@VM-4-16-centos .ssh]# cat id_rsa.hub
-bash: caid_rsa.hub: command not found
[root@VM-4-16-centos .ssh]# cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA(马赛克)QDu7haN1azW4SkcbM8zn+fV7bdr56MTw1gMlQSl1Bfh2h2ky0CszAasSj3L1yrw8RJYj5YGavYgTfQ4Dtxfc5I9X4Shk0k/Y94BklMxlNhb1uq8GEBgmFMm(马赛克)/lzfyk7QYMqxdYlFu7T7ku+vFHh2ZBduTrLV9iqiPXetJxqJ5EGvMaQxfKdn8u+Al8+99bi8ObBFAjN1G/DrCxIIjg+fvZ root@VM-4-16-centos
[root@VM-4-16-centos .ssh]# 
  1. 进入~/.ssh目录,里面应该是什么都没有(有其他的ssh密码要信息也是正常的)
  2. ssh-keygen 生成ssh密钥对,一路回车就可以了,生成的密钥对拥有默认名称 id_rsa和id_rsa.pub,pub那个就是公钥的意思。
  3. 复制公钥信息
  4. (对于gitee的操作)进入gitee或gitee密钥对设置页面,标题随便,公钥粘贴进来(一定要完整),确定4. (对于github的操作)和上面一模

在这里插入图片描述在这里插入图片描述

  1. 测试
[root@VM-4-16-centos .ssh]# ssh -t git@gitee.com
Warning: Permanently added 'gitee.com,212.64.62.183' (ECDSA) to the list of known hosts.
Hi imoder! You've successfully authenticated, but GITEE.COM does not provide shell access.
Connection to gitee.com closed.

[root@VM-4-16-centos .ssh]# ssh -t git@github.com
Warning: Permanently added 'github.com,13.250.177.223' (RSA) to the list of known hosts.
Hi imoderiii! You've successfully authenticated, but GitHub does not provide shell access.
[root@VM-4-16-centos .ssh]# 

……有没有看到successfully 。ok(警告先不管,后面再说!)

clone一下试试?

[root@VM-4-16-centos home]# git clone git@gitee.com:heiyueGit/springboot-flowable.git
Cloning into 'springboot-flowable'...
remote: Enumerating objects: 899, done.
remote: Counting objects: 100% (899/899), done.
remote: Compressing objects: 100% (694/694), done.
remote: Total 899 (delta 192), reused 816 (delta 166), pack-reused 0
Receiving objects: 100% (899/899), 4.17 MiB | 0 bytes/s, done.
Resolving deltas: 100% (192/192), done.

……解决了有没有。

2.2 wins

  1. 打开你的cmd或者git的bash,如下操作,
iModer@DESKTOP-G2HBVIK MINGW64 /f
$ ssh-keygen.exe
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/John/.ssh/id_rsa):
Created directory '/c/Users/John/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/John/.ssh/id_rsa.
Your public key has been saved in /c/Users/John/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:YFDOEXuUjGfbECTlLfB9FRK1XXFQGukRbOhovMqpu6I iModer@DESKTOP-G2HBVIK
The key's randomart image is:
+---[RSA 3072]----+
|    ..**=o  o=BB=|
|     +.O*o  .o==o|
|      *o==oo.oo..|
|     . o..=.. .  |
|        S. .     |
|          .      |
|       . o       |
|    .   +        |
|  E. .++         |
+----[SHA256]-----+

……生成ssh密钥对,唯一的不同就是……额,生成的目标文件夹不同,在/c/Users/yours/.ssh’下,然后复制下公共秘钥,后面的操作就和前面一样了。

3 Warning: Permanently added ‘gitee.com,212.64.62.183’ (ECDSA) to the list of known hosts.的解决方案

其实建议可以在进行域名解析时将相应的域名设置为永久,也就是在你的hosts文件中显示配置一下:
linux下hosts文件为**/etc/hosts**
在这里插入图片描述
wins的hosts文件应该在C:\Windows\System32\drivers\etc文件夹下?(你可以百度一下),添加的内容和上面一模一样,保存退出就可以了。
测试一下:

[root@VM-4-16-centos home]# ssh -t git@gitee.com
Hi imoder! You've successfully authenticated, but GITEE.COM does not provide shell access.
Connection to gitee.com closed.

大功告成!,溜了溜了。

标签:remote,centos,repository,Permission,16,rsa,gitee,ssh,root
来源: https://blog.csdn.net/imoder/article/details/117136305

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有