Azure DevOps弃用ssh-rsa后,新rsa-sha2-512密钥无法使用求助
解决SSH-RSA密钥仍被拦截的问题
确认当前使用的签名算法
先排查SSH客户端实际采用的签名算法,执行以下命令:
ssh -v git@<你的仓库域名> 2>&1 | grep "signature algorithm"
通过输出确认会话是否真的在使用rsa-sha2-512。
强制SSH使用指定签名算法
如果客户端默认仍使用ssh-rsa,需修改SSH配置:
- 编辑或新建
~/.ssh/config文件,添加:
Host <你的仓库域名> PubkeyAcceptedAlgorithms +rsa-sha2-512,rsa-sha2-256 HostkeyAlgorithms +ssh-rsa
将<你的仓库域名>替换为实际仓库地址的域名(如dev.azure.com)。
2. 保存后测试连接:
ssh -T git@<你的仓库域名>
确保Git调用正确的SSH配置
让Git使用自定义的SSH配置,执行:
git config --global core.sshCommand "ssh -F ~/.ssh/config"
验证远程仓库的密钥配置
确认新生成的公钥(默认路径~/.ssh/id_rsa.pub)已正确添加到远程仓库的SSH密钥列表,避免混淆旧的ssh-rsa密钥。
检查系统级SSH配置
若以上步骤无效,检查/etc/ssh/ssh_config,确保配置中优先使用SHA2系列算法:
PubkeyAcceptedKeyTypes=rsa-sha2-512,rsa-sha2-256,ssh-ed25519,ecdsa-sha2-nistp256
内容的提问来源于stack exchange,提问作者Hamza Afridi
相关产品推荐
相关产品推荐

