Git学习解决升级Git版本为2.36.1之后,AS弹出SSH Password Login窗口,并且Git连接远程仓库失败的问题

Posted 字节卷动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git学习解决升级Git版本为2.36.1之后,AS弹出SSH Password Login窗口,并且Git连接远程仓库失败的问题相关的知识,希望对你有一定的参考价值。

一、问题描述

1.1 版本太低要求升级

昨天AS一直提示我,git版本太低了, 我大概记得我之前的Git for Windows版本是2.12.0的。说需要升级到2.19版本之后,

然后我想着既然要升级,不如直接升级到最新版本。然后我就升级到了Git for Windows 2.36.1版本。

1.2 Git for Windows 下载地址

1.3 查看当前的git版本

我们使用命令

 git version

即可查出当前版本已更新为2.36.1.windows.1版本。

1.4 更新版本之后的问题

更新版本之后,AS弹出如下所示的【SSH Password Login】窗口


真的是莫名其妙啊!!!

二、排查问题

2.1 排查RSA公钥和私钥问题

我还以为是我的RSA公钥和私钥出问题了,经过一番排查,本地的RSA公钥和私钥没问题,和GitLab服务器上的公钥也匹配。

那就得查询另外的问题了。

2.2 查一下[Git for Windows]的升级日志

2.3 查看OpenSSH版本信息

OpenSSH will disable the ssh-rsa signature scheme by default in the
next release.

2.4 最终原因

好吧,通过上面的排查,我们发现在OpenSSH v8.8p1版本开始,Git for Windows 客户端会默认禁用ssh-rsa。而我们的Gitlab服务器目前只支持ssh-rsa,

当你不能自己升级远程服务器的 openssh 版本或修改配置让它使用更安全的算法时, 在本地 ssh 针对这些旧的ssh server重新启用 ssh-rsa 也是一种权宜之法.

如上所示,在本机~/.ssh/目录添加config文件,写入配置:

Host *  (全部开启,也可针对性调整,此处请删除)
    HostkeyAlgorithms +ssh-rsa
	PubkeyAcceptedAlgorithms +ssh-rsa

三、修复问题

  1. 进入.ssh目录
cd ~/.ssh
  1. 新建config文件
touch config
  1. 编辑config文件
vim config
  1. 添加如下内容
Host *
     HostKeyAlgorithms +ssh-rsa
     PubkeyAcceptedKeyTypes +ssh-rsa


5. 保存退出
6. 重新尝试和远程服务器连接的相关git操作,成功

好吧,最终成功解决这个问题!

以上是关于Git学习解决升级Git版本为2.36.1之后,AS弹出SSH Password Login窗口,并且Git连接远程仓库失败的问题的主要内容,如果未能解决你的问题,请参考以下文章

记git升级版本之后出现fatal: NullReferenceException encountered问题

git版本升级

Git命令学习之旅——日志和穿梭版本

[Linux] 低版本centos升级git解决fatal: HTTP request failed

git 如何让远程分支版本回退

官网Kali Linux VMware 升级之后无法启动的解决办法