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.