You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AWS EC2 Linux实例Putty SSH登录失败:无可用支持认证方法

AWS EC2 Linux实例Putty SSH登录失败:无可用支持认证方法

嗨,我来帮你分析下这个问题~你遇到的“无可用支持认证方法”错误,从Ubuntu的日志来看,核心原因是老的SSH-RSA密钥算法被新版本的OpenSSH默认禁用了,咱们分步骤解决:

一、先解决Ubuntu实例的登录问题

从你给出的日志:

Apr 3 06:19:36 ip sshd[11329]: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedAlgorithms [preauth]

明确能看出,当前sshd服务不允许使用ssh-rsa类型的密钥,你有两种解决思路:

思路1:临时开启ssh-rsa算法支持(快速解决)

  • 先通过EC2 Web控制台登录到Ubuntu实例
  • 编辑sshd配置文件:sudo nano /etc/ssh/sshd_config
  • 找到PubkeyAcceptedAlgorithms配置项,如果没有就直接添加一行:
    PubkeyAcceptedAlgorithms +ssh-rsa
    
    (注意前面的+号,是在原有允许的算法基础上追加ssh-rsa,不是覆盖)
  • 保存文件后重启sshd服务:sudo systemctl restart sshd
  • 现在再用Putty加载原来的RSA密钥尝试登录,应该就能成功了

思路2:生成更安全的现代密钥(推荐长期方案)

ssh-rsa属于较老的算法,安全性不如新的Ed25519,推荐生成新密钥替换:

  • 打开本地的Puttygen工具,在「Parameters」区域选择「Ed25519」,点击「Generate」,移动鼠标生成密钥
  • 生成完成后,点击「Save private key」保存为.ppk格式(记得备份好),然后复制公钥文本
  • 回到EC2 Web控制台的Ubuntu实例,把复制的公钥添加到~/.ssh/authorized_keys文件末尾(确保文件权限是600,文件夹权限是700
  • 打开Putty,在「Connection -> SSH -> Auth」里选择新生成的.ppk文件,尝试登录即可

二、处理Amazon Linux实例的问题

你说Amazon Linux里找不到auth.log,其实它的SSH日志存在/var/log/secure文件里,你可以查看这个文件确认是不是同样的ssh-rsa算法问题。如果是的话,处理步骤和Ubuntu类似:

  • 通过Web控制台登录Amazon Linux实例
  • 编辑/etc/ssh/sshd_config,添加或修改PubkeyAcceptedAlgorithms +ssh-rsa
  • 重启sshd服务:如果是Amazon Linux 2,用sudo systemctl restart sshd;如果是Amazon Linux 1,用sudo service sshd restart
  • 同样检查Putty是否正确加载了密钥文件,再尝试登录

额外检查点

  • 确保Putty的「Connection -> SSH -> Auth」里确实选择了正确的.ppk密钥文件,没有选错
  • 确认EC2实例的安全组已经开放了22端口,允许你的本地IP访问

备注:内容来源于stack exchange,提问作者andrew

火山引擎 最新活动