问题描述:
当在一个git仓库中手动操作git命令时,比如pull、push等时,或者在ssh -T git@github.com时,终端报错:ssh: connect to host github.com port 22: Operation timed out
截图:
问题排查:
- 在Mac电脑中ssh文件夹的位置在:/Users/xxx/.ssh
- 查看其中的文件,截图如下:
- 通过在github网站的ssh配置中,查看公钥都存在,而且known_hosts中也存在对应github的ssh公钥信息。
- known_hosts文件:known_hosts是系统生成的,在一些需要ssh操作中,通过ssh访问的主机的端口和公钥信息都会保存在这里。主要是保存你ssh访问某些主机时的身份信息到本地,防止中间人攻击。
- 然后就是因为: ssh -T git@github.com 测试访问时,提示端口22操作超时,如上面的问题截图所示。
- 那么这些文件配置没问题,那么最后确定就是端口22访问的问题,通过查找很多资料后发现,可以尝试将端口号22修改成443的https访问。
解决办法:
1.在ssh文件夹下需要一个config文件,在文件中配置github的host主机和端口,那么在进行ssh访问时,会从config文件中读取配置。
Host github.com
Hostname ssh.github.com
Port 443
2.我们可以直接通过一行终端命令搞定。
3.终端进入到ssh文件夹下:
cd ~/.ssh
4.那么在.ssh文件夹下没有config文件对吧,我们通过命令写入一下,然后会生成config文件(直接复制以下命令,回车就好):
echo 'Host github.com
Hostname ssh.github.com
Port 443' >> config
那么config文件自动就生成了,重新尝试链接github.com。
5.看结果,成功被allowed了:
6.然后可以查看一下know_hosts文件,连接成功的端口是443了:
以上。
本文暂时没有评论,来添加一个吧(●'◡'●)