git操作时的Operation timed out

原创文章
声明:作者声明此文章为原创,未经作者同意,请勿转载,若转载,务必注明本站出处,本平台保留追究侵权法律责任的权利。
全栈老韩
全栈工程师,擅长iOS App开发、前端(vue、react、nuxt、小程序&Taro)开发、Flutter、React Native、后端(midwayjs、golang、express、koa)开发、docker容器、seo优化等。

问题描述:
当在一个git仓库中手动操作git命令时,比如pull、push等时,或者在ssh -T git@github.com时,终端报错:ssh: connect to host github.com port 22: Operation timed out
截图:

问题排查:

  1. 在Mac电脑中ssh文件夹的位置在:/Users/xxx/.ssh

  2. 查看其中的文件,截图如下:

  3. 通过在github网站的ssh配置中,查看公钥都存在,而且known_hosts中也存在对应github的ssh公钥信息。

  4. known_hosts文件:known_hosts是系统生成的,在一些需要ssh操作中,通过ssh访问的主机的端口和公钥信息都会保存在这里。主要是保存你ssh访问某些主机时的身份信息到本地,防止中间人攻击。

  5. 然后就是因为: ssh -T git@github.com 测试访问时,提示端口22操作超时,如上面的问题截图所示。

  6. 那么这些文件配置没问题,那么最后确定就是端口22访问的问题,通过查找很多资料后发现,可以尝试将端口号22修改成443的https访问。

解决办法:
1.在ssh文件夹下需要一个config文件,在文件中配置github的host主机和端口,那么在进行ssh访问时,会从config文件中读取配置。

config 复制代码
Host github.com
  Hostname ssh.github.com
  Port 443

2.我们可以直接通过一行终端命令搞定。
3.终端进入到ssh文件夹下:

terminal 复制代码
cd ~/.ssh

4.那么在.ssh文件夹下没有config文件对吧,我们通过命令写入一下,然后会生成config文件(直接复制以下命令,回车就好):

terminal 复制代码
echo 'Host github.com
  Hostname ssh.github.com
  Port 443' >> config

那么config文件自动就生成了,重新尝试链接github.com
5.看结果,成功被allowed了:

6.然后可以查看一下know_hosts文件,连接成功的端口是443了:

以上。

暂无评论,快来发表第一条评论吧