Permission denied (publickey)

1、检查是否链接:

ssh -T git@github.com

2、对比本地的公钥指纹和线上的公要指纹是否一致:

查看本地公要指纹

如果您使用的是OpenSSH 6.7或更早版本

eval "$(ssh-agent -s)"
>Agent pid 59566
ssh-add -l
>2048 a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)

如果您使用的是OpenSSH 6.8或更新版本:

eval "$(ssh-agent -s)"
>Agent pid 59566
ssh-add -l -E md5
>2048 MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d /Users/you/.ssh/id_rsa (RSA)
查看仓库公钥指纹
image.png

如果以上都没问题,应该是被公司网络或者防火墙拦截了。

通过HTTPS端口使用SSH

要测试是否可以通过HTTPS端口进行SSH,请运行以下SSH命令:
ssh -T -p 443 git@ssh.github.com
>Hi username! You've successfully authenticated, but GitHub does not
>provide shell access.
如果您能够git@ssh.github.com通过端口443 进行SSH ,则可以覆盖SSH设置以强制任何与GitHub的连接通过该服务器和端口运行。
要在ssh配置中设置此项,请在以下位置编辑该文件~/.ssh/config,然后添加以下部分:
Host github.com
  Hostname ssh.github.com
  Port 443
  IdentityFile  ~/.ssh/id_rsa 
  IdentitiesOnly yes

IdentityFile是用来配置私钥文件,当你的电脑有两个或以上仓库要提交

您可以通过再次连接到GitHub来测试这是否有效:
ssh -T git@github.com
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.

参考:https://help.github.com/en/articles/using-ssh-over-the-https-port

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容