问题表现:
使用ssh -i “私钥” 用户名@地址能连接,但是使用一些终端工具例如finalshell,MobaXterm或者其他的终端工具连接不上,或者报No supported authentication methods available (server sent: publickey,gssapi- keyex,gssapi-with-mic),请注意这里说的是使用私钥登录时出现的问题,不是使用账号密码。
1、解决办法
使用 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
解决办法:
一、选择一个其他类型的ssh密钥类型(一般来说有用)
1、这里最好是更换密钥版本来替换原来的密钥,可以使用ecdsa。当然版本最好是确认下,因为很多云服务器厂商限制了密钥版本,生成过后可能不能导入。
ssh-keygen -t ecdsa
2、还需要转换成pem格式的
ssh-keygen -p -m PEM -f 你的私钥文件名,没有pub后缀的那一个
3、用公钥替换~/.ssh/authorized_keys
4、连接试试
二、如果自己的服务器操作系统版本不高,可以将ssh-rsa加入到支持行列中
1、将ssh-rsa加入到ssh_config中
echo "PubkeyAcceptedKeyTypes=+ssh-rsa" >>/etc/ssh/sshd_config
2、重启sshd
systemctl restart sshd