突然某天,访问不了Git仓库,不能退也不能拉代码,但是并不记得近期有修改过Git什么配置,记录一下解决过程.
错误内容
[email protected]: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
尝试
使用ssh工具测试访问的时候意外发现 id_ed25519
格式的Key可以正常访问,于是猜测是软件升级(服务端OR客户端导致的兼容问题)
ssh -T [email protected] -i ~/.ssh/id_ed25519
CODING 提示: Hello 皮皮强, You've connected to coding.net via SSH. This is a Personal Key.
皮皮强,你好,你已经通过 SSH 协议认证 coding.net 服务,这是一个个人公钥.
公钥指纹:ff:b3:XXXXXXXXXXXXXXXXXXXXX:da:e4
查看一下本机SSH版本,果然发现升级了,那么我就大概知道了,之前Gitee也有同样问题,服务端的ssh支持的版本较低导致的.
ssh -V
OpenSSH_9.0p1, LibreSSL 3.3.6
解决方法
在 ~/.ssh/config 加上如下配置,Host换成你自己使用的Git的仓库克隆地址.
Host e.coding.net
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
其他解决方法我觉得比较麻烦,附上链接大家自己查看