我在使用VSCode远程连接服务器的时候,root用户的ssh出了一点问题,因此我把工作区.ssh文件删掉重新配置了,但是没注意到git连接到GitHub的密钥也存在这个文件夹里,因此导致我需要git 项目的时候出现了问题:

Permission denied (publickey). fatal: Could not read from remote repository

打开PowerShell,输入如下命令进行查看:

cd ~/.ssh
ls

正确的项目结构如下(包括id_rsa,id_rsa.pub)

image-20231225154305388

如果没有(和我情况一样,就是误删了),那么有如下两种解决办法

  • 方法一:根据主机IP地址重新生成

在用户目录执行:

ssh-keygen -t rsa -C "你机器的IP"

就会在用户的.ssh/目录下生成对应文件

关于这个机器IP,我在网上找的查询方法如下:

  1. 打开powershell,输入以下命令:

    ipconfig/all
    

    可以看到本机的ip地址信息:

    image-20231225155558232

  2. 继续输入以下命令:

    arp -a
    

    可以看到所有与本机进行通信的IP地址:

    image-20231225155721168

  3. 这个时候ping一下自己的主机,就会显示计算机当前的ip地址:

    image-20231225160200675

    结果如下:

    image-20231225160501337

接下来的步骤可以看方法二.

  • 方法二:根据GitHub仓库邮箱重新生成
  1. 生成自己的ssh key

    ssh-keygen -t rsa -C "youremail@example.com" # youremail@example.com改为自己的邮箱
    
  2. 排查与 GitHub 仓库的 SSH 连接问题

    ssh -v git@github.com
    

    如果之前没有密钥了会出现如下结果:

    最后两句会出现:No more authentication methods to try. Permission denied (publickey).

    如果正常则会出现如下结果:

    image-20231225161656765

  3. 向 SSH 代理添加私钥:

    ssh-add id_rsa
    

    image-20231225162024056

  4. 然后打开./ssh文件夹下的id_rsa_pub,将里面的内容复制到GitHub的SSH KEY里,完成添加:

    image-20231225162422818

  5. 最后验证一下key

    ssh -T git@github.com
    

    image-20231225162600312

参考资料:

教你如何通过cmd查看本机IP - 腾讯云开发者社区-腾讯云 (tencent.com)

误删id_rsa和id_rsa.pub文件重新生成_恢复 id_rsa.pub-CSDN博客

Github无法远程拉取仓库“Permission denied (publickey). fatal: Could not read from remote repository”的解决方案_github_Zimsea-华为开发者联盟HarmonyOS专区 (csdn.net)