大观天地
大观天地
发布于 2025-07-09 / 13 阅读
0

新的Linux系统使用ssh私钥连接出现No supported authentication methods available

问题表现

使用ssh -i “私钥” 用户名@地址能连接,但是使用一些终端工具例如finalshell,MobaXterm或者其他的终端工具连接不上,或者报No supported authentication methods available (server sent: publickey,gssapi- keyex,gssapi-with-mic),请注意这里说的是使用私钥登录时出现的问题,不是使用账号密码。

解决办法

使用 ssh -i的方式连接上,然后输入 ssh -V查看ssh的版本,如果版本>=8.2。就代表不支持ssh-rsa的密钥。或者查看secure日志查看是否有**userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]**的信息。

tail -f /var/log/secure

1. 选择其他类型的ssh密钥类型

  1. 这里最好是更换密钥版本来替换原来的密钥,可以使用ecdsa。当然版本最好是确认下,因为很多云服务器厂商限制了密钥版本,生成过后可能不能导入。

ssh-keygen -t ecdsa
  1. 还需要转换成pem格式的

ssh-keygen -p -m PEM -f 你的私钥文件名,没有pub后缀的那一个
  1. 用公钥替换~/.ssh/authorized_keys

  2. 连接试试

2. 将ssh-rsa加入到支持行列中

如果自己的服务器操作系统版本不高,可以将ssh-rsa加入到支持行列中

  1. 将ssh-rsa加入到ssh_config中

echo "PubkeyAcceptedKeyTypes=+ssh-rsa" >> /etc/ssh/sshd_config
  1. 重启sshd

systemctl restart sshd