项目场景:
gerrit服务器搭建完成后,当我们在部署新的开发环境时,需要使用Gerrit clone代码。
问题描述
发现报错,错误信息大概是:Permission denied (publickey). fatal: Could not read from remote repository.
原因分析:
OpenSSH
从8.8版本开始由于安全原因开始弃用了rsa
加密的密钥。因为OpenSSH
认为rsa
破解成本太小了,有风险就给禁用了。
解决方案:
你可以通过命令:
ssh -v [git服务器IP地址]
去查看Gerrit服务器的OpenSSH
的版本号,如果≥8.8,就可以用这个方法。可以使用ed25519
代替rsa
。
ssh-keygen -t ed25519 -C "你的git邮箱"
其他步骤与使用rsa算法一致:可以参考:git ssh key配置。
注:使用rsa算法生成的公钥文件默认名称是id_rsa.pub
,使用ed25519算法生成的公钥文件默认名称是id_ed25519.pub