Ubuntu 22.04下使用ssh报错Permission denied (publickey)解决方法(之一)
直接说结论,Ubuntu 22.04的默认openssh版本为8.9版本,如果本机私钥使用RSA算法生成,ssh会无法验证私钥,解决方案:
#使用ed25519算法生成私钥
ssh-keygen -t ed25519
排查方法,ssh登录时加上-v,会输出详细的debug信息,如果使用RSA算法生成私钥,可以在debug信息中看到如下信息:
原因:
RSA算法存在一定安全隐患,因此在OpenSSH 8.2版本后被弃用
参考:
OpenSSH to deprecate SHA-1 logins due to security risk
PS:
除了使用更新的算法生成私钥外,另外还可以通过强行添加RSA算法进ssh配置解决(但不推荐):
sudo vim /etc/ssh/ssh_config
# 在ssh_config中添加一条PubKeyAcceptedKeyTypes +ssh-rsa
参考资料: