ssh -T git@github.com Connection closed by 127.0.0.1 port 7897

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

这篇文章,简要介绍当git操作时,git命令提示could not read from remote repository的问题,且终端命令执行ssh -T时,connection被terminated。

一、问题:

git pull时:

console 复制代码
git pull
Connection closed by 127.0.0.1 port 7897
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

ssh -T git@github.com时:

terminal 复制代码
ssh -T git@github.com
Connection closed by 127.0.0.1 port 789

1.1 截图:

git pull error
ssh error

二、原因

从上面的问题中可以看出,是自己的电脑127.0.0.1:7897中断了链接,那么问题出现在自己的电脑中。这种情况通常容易出现在科学上网的场景下,需要我们配置本地的代理配置上。

大家应该了解电脑的hosts文件,是允许自定义配置电脑对某些域名、ip访问的文件。

然后对于github而言,都是要求https进行安全访问,那么就涉及到端口号443的配置。

另外github仓库的ssh访问,身份校验也是需要在本地电脑和github上配置访问的ssh 公开/私密 密钥的,并且ssh也是有一个配置文件的。

三、解决方法

通过上面的问题分析,我们可以推导出合适的解决方案:我们在ssh的配置文件中,配置好对github的443访问,那么GitHub ssh的身份鉴权问题就能解决,从而git pull等指令和github进行交互时,GitHub就能知道git指令是来自通过了身份鉴权的安全电脑环境,就不会有access right问题。

四、操作步骤

下面的操作是在mac上进行的,目录和文件仅限mac环境。

4.1 找到ssh config文件

  • mac上的ssh配置文件,都是在.ssh这个文件夹中;
  • .ssh文件夹处于mac的资源库目录下,是一个隐藏文件夹(显示隐藏文件及文件夹的操作,大家可以自行搜索一下);
  • 如果没有config文件,那么就新建一个。

示例:
.ssh目录

如果没有config文件可以新建一个

terminal 复制代码
touch config

4.2 配置ssh config文件

config文件 复制代码
Host github.com
  Hostname ssh.github.com
  Port 443
  User git
  ProxyCommand nc -X 5 -x 127.0.0.1:7897 %h %p

4.3 重新验证ssh

terminal 复制代码
ssh -T git@github.com
add knowlist

执行这步时,就会提示443配置将加到同目录下的known_hosts文件中。
最后那行表示已经成功通过github的ssh身份鉴权,可以使用git相关指令了。

至此结束,希望对大家有帮助。

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