这是【Git 教程系列第 20 篇】,如果觉得有用的话,欢迎关注专栏。
最近两周在用 TortoiseGit 从远端拉取项目,以及从本地向远端推送项目时,总会报如下错误 因为多尝试几次又可以拉取和推送了(使用 Git 客户端也是这样),以为是因为最近疫情的影响,大家都宅在家里,所以网速比较慢,就没把这当回事。
但公司的电脑一直没有这个问题,这让我觉得可能不是因为网速。果然,踏破铁鞋无觅处,今天终于把这个问题给解决了。
第一步 在自己公钥的路径下,新建一个 config 文件,注意没有后缀名(之前我并没有 config 文件,这个也是新建的,如果你之前就有,请无视这句话)。 然后打开该文件,输入如下内容,然后保存文件
Host github.com
User "这里填自己注册 github 时的邮箱地址"
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
第二步 打开 Git 客户端,输入 ssh -T git@github.com
命令来验证一下是否连接成功 如果你的也出现了这段话,恭喜你,你的问题也解决了。
扩展一: 先对第一步 config 文件中的内容做下简单说明
名称解释说明Host github.com服务器地址为 github 地址Hostname ssh.github.com服务器地址为 github 地址PreferredAuthentications publickey采用公匙IdentityFile ~/.ssh/id_rsa公匙文件路径Port 443修改端口为 443扩展二: 关于第二步的 You’ve successfully authenticated, but GitHub does not provide shell access 这段话,我也查了一下资料
这段话翻译成中文是:您已成功通过身份验证,但是 GitHub 不提供 Shell 访问权限。
首先,这不是一个错误,而是 github 给的一句提示语,ssh -T 的意思是不显示终端,只显示连接成功信息。
虽然我们无法使用 ssh 协议直接登录 github,但当我们在使用 ssh 协议连接到自己或者其它服务器时,本地终端会显示命令提示符,我们可以在上面输入 ls 等命令进行操作,相当于在 github 服务器上建立了一个伪终端。
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语 技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。 最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。