最近更新npm的时候出了点问题。重装node后,我本地git突然就无法同步和连接远程github的库了。
报错内容如下:
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
一开始看到这个信息的时候,我马上感觉是不是因为断网或者被墙了导致的连接失败。
网页登录github,发现一切正常并没有问题。
排除该问题之后我又测试了一下是否可以直接从终端连接github,结果如下
这结果就有点的尴尬了。我网页能上github查看我的远程库,本地git bash却连接不上。
这个时候我注意到了图中信息里的 port 22
是端口的原因吗?我照着网上的说法 用443端口连接了一次github,命令如下:
$ ssh -T -p 443 git@ssh.github.com
成功
看来问题和网络连接有关没跑了。我试着在网上查了一下关于改动git端口的方法,什么在git下的etc文件里改动ssh_config配置,什么在公钥的文件夹里面建个config文件之类的,好像也并没有什么用(可能是我方法不对)。
折腾了半小时后我找到了一个比较直接有效的解决方案:通过修改github连接方式,从之前设置的ssh方法转成https方法(我理解为登录操作)。命令如下:
$ git config --local -e //编辑本地git配置
将
url = git@github.com:你的用户名/仓库名.git
改为
url = https://github.com/你的用户名/仓库名.git
然后esc :wq保存修改回车
试着拉了一下远程的代码结果如下
终于能正常使用了(虽然开始要输入账号和密码)
这种方法虽然并没有根本解决ssh连接失败的问题,但是总算能将代码传上去了。
至于为啥ssh的方法不能使用,还待我继续研究。