无法无PEM文件访问AWS EC2 Ubuntu实例SSH,已尝试方案无效
解决Ubuntu实例SSH密码登录失败问题
针对你遇到的Permission denied (publickey)报错——即使已开启密码认证仍无法登录的情况,可按以下步骤排查修复:
1. 重新验证SSHD配置项
通过PEM文件登录实例后,打开/etc/ssh/sshd_config,确保以下关键配置正确:
PasswordAuthentication yes(确认未被注释或其他配置覆盖)ChallengeResponseAuthentication yes(该项默认可能为no,需开启以支持密码交互)- 无
Match配置块(如针对ubuntu用户的规则)覆盖上述认证设置 - 保留
PermitRootLogin prohibit-password(Ubuntu默认禁止root远程登录,建议使用ubuntu用户登录)
修改完成后,检查配置文件语法是否正确:
sudo sshd -t
若无报错,重启SSHD服务:
sudo systemctl restart sshd
2. 确认SSHD服务运行状态
执行以下命令确保服务正常运行:
sudo systemctl status sshd
输出需显示active (running),无异常报错。
3. 客户端强制指定密码认证连接
默认情况下,SSH客户端会优先尝试本地公钥文件,可能不会触发密码输入。可通过以下命令强制客户端使用密码认证:
ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no ubuntu@{公网IP}
4. 检查PAM认证配置(Ubuntu专属)
Ubuntu的SSHD依赖PAM模块,打开/etc/pam.d/sshd文件,确保存在@include common-auth行(该行加载系统默认密码认证规则),且无auth required pam_deny.so这类阻止认证的规则。
5. 重置ubuntu用户密码
重新执行密码设置命令,确保密码输入正确(Ubuntu密码输入无可视化回显):
sudo passwd ubuntu
完成以上步骤后,再次尝试SSH密码登录,即可正常访问实例。
内容的提问来源于stack exchange,提问作者kwangkyu
相关产品推荐
相关产品推荐

