我在使用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)
如果没有(和我情况一样,就是误删了),那么有如下两种解决办法
- 方法一:根据主机IP地址重新生成
在用户目录执行:
ssh-keygen -t rsa -C "你机器的IP"
就会在用户的.ssh/
目录下生成对应文件
关于这个机器IP,我在网上找的查询方法如下:
-
打开powershell,输入以下命令:
ipconfig/all
可以看到本机的ip地址信息:
-
继续输入以下命令:
arp -a
可以看到所有与本机进行通信的IP地址:
-
这个时候ping一下自己的主机,就会显示计算机当前的ip地址:
结果如下:
接下来的步骤可以看方法二.
- 方法二:根据GitHub仓库邮箱重新生成
-
生成自己的ssh key
ssh-keygen -t rsa -C "youremail@example.com" # youremail@example.com改为自己的邮箱
-
排查与 GitHub 仓库的 SSH 连接问题
ssh -v git@github.com
如果之前没有密钥了会出现如下结果:
最后两句会出现:No more authentication methods to try. Permission denied (publickey).
如果正常则会出现如下结果:
-
向 SSH 代理添加私钥:
ssh-add id_rsa
-
然后打开
./ssh
文件夹下的id_rsa_pub
,将里面的内容复制到GitHub的SSH KEY里,完成添加: -
最后验证一下key
ssh -T git@github.com
参考资料:
教你如何通过cmd查看本机IP - 腾讯云开发者社区-腾讯云 (tencent.com)
参与讨论
(Participate in the discussion)
参与讨论