如何以root身份登录云实例?SSH登Ubuntu正常但root登录失败求助
解决无法以root身份SSH登录的问题
你遇到的这个提示Please login as the user "ubuntu" rather than the user "root",大概率不是常规的PermitRootLogin配置问题,而是系统里存在专门的强制拦截规则。我来帮你一步步排查解决:
第一步:定位提示文本的来源
先全局搜索这段提示内容,找到它藏在哪个文件里:
grep -r "Please login as the user \"ubuntu\"" /etc/ssh/ /root/ /home/ubuntu/
执行这个命令后,你会看到包含这段文字的具体文件路径,这就是问题的根源所在。
第二步:根据来源文件针对性处理
情况1:提示来自/etc/ssh/sshd_config
很多云服务商的官方镜像会在SSH配置文件里添加专门的Match规则限制root登录,典型的配置如下:
Match User root ForceCommand echo "Please login as the user \"ubuntu\" rather than the user \"root\""
解决方法:
- 用ubuntu用户登录后,编辑SSH配置文件:
sudo nano /etc/ssh/sshd_config - 找到上述的
Match User root块,要么给每行前面加#注释掉,要么直接删除这段内容。 - 同时确认
PermitRootLogin已设置为yes(密码登录)或prohibit-password(密钥登录),如果需要密码登录,还要确保PasswordAuthentication设为yes。 - 最后重启SSH服务让配置生效:
sudo systemctl restart sshd
情况2:提示来自root用户的shell配置文件
如果搜索结果指向/root/.bashrc或者/root/.profile,说明root用户的登录脚本里被添加了强制退出的代码,比如:
echo "Please login as the user \"ubuntu\" rather than the user \"root\"" exit 1
解决方法:
- 用ubuntu用户登录后,编辑对应的配置文件:
sudo nano /root/.bashrc - 找到这段代码,删除或者给它前面加
#注释掉。 - 保存退出后,再尝试root登录即可正常访问。
情况3:罕见的PAM配置问题
如果前面两种情况都没找到问题,可以检查PAM的SSH配置文件/etc/pam.d/sshd,看看有没有针对root用户的拒绝规则。不过这种情况很少会输出这个特定提示,若发现类似auth required pam_deny.so的针对性规则,可根据需求调整。
最后验证
修改完成后,尝试用root身份SSH登录,应该就能正常访问了。如果还是不行,可以查看SSH服务的日志(journalctl -u sshd),根据报错信息进一步排查。
内容的提问来源于stack exchange,提问作者James Smith
相关产品推荐
相关产品推荐

