今天在使用git拉取代码时突然遇到一个奇怪的错误:
起初以为是误删了远程端的public key。重新添加后也还是一样的错误。
后面仔细看了下报错内容:no matching host key type found . Their offer: ssh-rsa
上网一搜发现原来是openssh新版本默认不再支持ssh-rsa,因此可以考虑使用ed25519来生成新的秘钥。
ssh-keygen -t ed25519 -C "email"
而我的环境特殊,并不能更换到ed25519,因此采用另一种方法,修改config文件来让openssh重新启用ssh-rsa。
在.ssh路径下创建config文件(如果已经有则直接在文件末尾追加)并添加下面内容:
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
到此处重新使用git即可发现已经可以正常使用了。