GeekHub

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

OpenSSH 8.2 发布 禁用 ssh-rsa 算法

PS:

除了使用更新的算法生成私钥外,另外还可以通过强行添加RSA算法进ssh配置解决(但不推荐):

sudo vim /etc/ssh/ssh_config

# 在ssh_config中添加一条PubKeyAcceptedKeyTypes +ssh-rsa

参考资料:

ssh-rsa验证失败”no mutual signature algorithm”

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注