最近在巨硬的推荐下, 手痒从WIN10升级到了WIN11。WIN11没给我带来太多的惊艳,反而,从gitee pull拉取时失败了,提示 :
简短截说,原因是随着WIN11的升级,SSH也随之升级了,然后原来标准rsa加密算法(SHA-1)的key不能得到验证了。
解决的方法有三个个:解决方案:
1、修改git服务器配置,添加 PubkeyAcceptedKeyTypes +ssh-rsa 配置,接受SHA-1算法
2、更换秘钥生成算法,使用 ed25519 算法生成
ssh-keygen -t ed25519 -C "your email",重新提交基于ed25519生产的pubKey
3、降低 OpenSSH版本
验证这个问题可以用下面这个指令:
ssh -Tvvv git@gitee.com
在回显的一堆信息里面有以下内容:
红框的意思是没有互认的签名算法。
在仔细看这句话的上下,系统找到了id_rsa(SHA256), 但给出没有互认签名的结果,而没找到id_dsa, id_eddsa, ....等其他的验证key, 最后给出
debug1: No more authentication methods to try.
git@gitee.com: Permission denied (publickey).
的结论。
于是,下来问题就简单了,在它支持的算法里找一个生成就可以了。
我用了ed25519,成功了。