写点什么

恭喜,成功入坑 GitHub 。。。

作者:攻城狮杰森
  • 2022 年 7 月 08 日
  • 本文字数:1480 字

    阅读完需:约 5 分钟

恭喜,成功入坑 GitHub 。。。

大家好,我是杰森。GitHub 对大家来说一定不陌生,无论是学习还是(爬)(项)(目)。但是今天,我好像和它失联了……



当我像往常一样clone项目时,却得到了这样的报错


$ git clone git@github.com:appletdevelop/full-stack.gitCloning into ‘full-stack’...ssh: connect to host github.com port 22: Connection refusedfatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
复制代码


什么都不能阻止打工人搬砖,必须要解决。经过一番排查,终于找到了问题的根源。分享两种解决方案,大家注意避坑。

方案一:配置 DNS

因为错误信息显示 Connection refused ,所以我们需要去看看建立连接时发生了什么,为什么会出错。查看日志,果然发现端倪


$ ssh -vT git@github.comOpenSSH_9.0p1, OpenSSL 1.1.1o  5 July 2022debug1: Reading configuration data /c/Users/jason/.ssh/configdebug1: Reading configuration data /etc/ssh/ssh_configdebug1: Connecting to github.com [::1] port 22.debug1: connect to address ::1 port 22: Connection refuseddebug1: Connecting to github.com [127.0.0.1] port 22.debug1: connect to address 127.0.0.1 port 22: Connection refusedssh: connect to host github.com port 22: Connection refused
复制代码


日志显示,IPv6IPv4localhost 地址分别为 ::1127.0.0.1,这意味着我们在连接 github 时,其域名将会被解析为 localhost 地址,当然也就无法连接。


打开查询网站,找到 github.comIP 地址



Windows 下,打开本机 hosts 文件


C:\Windows\System32\drivers\etc


添加域名映射,并在 cmd 窗口刷新 DNS 配置


140.82.112.4 github.com# Refreshing DNS configurations$ ipconfig /flushdns
复制代码


重新拉取,成功。

方案二:修改端口号

从上面的报错信息中可以发现,重点在这一句


ssh: connect to host github.com port 22: Connection refused
复制代码


ssh 连接 GitHub22 号端口被拒绝。但是 ping 一下 github.com 能通,浏览器访问也没有问题,那有可能是该端口被防火墙蔽掉了。既然 22 端口拒绝访问,我们不妨尝试使用 443 端口进行连接。


使用 vim 指令编辑 ssh 配置文件,添加以下端口信息


$ vim ~/.ssh/config# Add the following configuration informationHost github.com  Hostname ssh.github.com  Port 443
复制代码


测试访问是否成功,通常不出意外的话意外就来了……


$ ssh -T git@github.comThe authenticity of host ‘[ssh.github.com]:443([unknown ip address]:443)’ can’t be established.xxx key fingerprint is xxx:xxx.This host key is known by the following other names/addresses:    # Delete the RSA information in line 8    ~/.ssh/known_hosts:8: github.comHost key verification failed.
复制代码


这与 ssh 的运行机制有关,ssh 会将本机访问过的计算机的 public key 记录在 ~/.ssh/known_hosts 下。当下次访问相同计算机时,若公钥不同则会发出警告,避免受到攻击。这里只需要找到 known_hosts 文件中对应 ipRSA 并删除便可解决。


再次测试,看到以下信息则表示访问成功


$ ssh -T git@github.comHi xxx! You’ve successfully authenticated, but GitHub does not provide shell access.
复制代码


这样访问 GitHub 时,ssh 就会连接 443 端口,不会报错。


总结

总结下本次踩坑的原因,主要有两点:



总之:“网上冲浪也要注意暗礁,低头走路也要抬头看路”,以上就是本期分享啦,希望可以帮到您!

发布于: 刚刚阅读数: 4
用户头像

#以梦为码,不负年华 2022.07.02 加入

目前计算机专业在读,阿里云专家博主,华为云云享专家,51CTO 博客专家,喜欢各类竞赛,熟悉 c/c++,java,html,css,javascript,python...竭力成为一名 Full Stack Developer. 关注杰森,与你同行,共同进步!

评论

发布
暂无评论
恭喜,成功入坑 GitHub 。。。_git_攻城狮杰森_InfoQ写作社区