如何在Mac环境下通过SSH登录VirtualBox中Ubuntu 14.04的root账户
解决Ubuntu 14.04 虚拟机SSH root登录权限拒绝问题
核心原因
Ubuntu 14.04默认开启SSH服务的安全策略,禁止root用户使用密码方式远程登录,你看到的报错是该安全策略的正常拦截提示,和密码是否正确、网络是否连通无直接关联。
修复步骤
- 打开VirtualBox中的Ubuntu 14.04虚拟机控制台,直接用root账户登录控制台,或者用普通用户登录后执行
su root切换到root权限。 - 编辑SSH服务配置文件,执行命令:
vi /etc/ssh/sshd_config - 找到配置项
PermitRootLogin,默认取值为without-password/prohibit-password,将取值修改为yes,如果该行开头有#注释符,需要先删掉注释符才会生效。 - 保存配置文件后退出编辑器,执行命令重启SSH服务让配置生效:
service ssh restart - 回到Mac终端重新执行
ssh root@虚拟机IP,输入root密码即可正常登录。
可选安全优化(推荐)
如果不需要开启root密码登录,可以采用公钥认证的方式实现免密登录,无需修改PermitRootLogin配置,安全性更高:
- 在Mac终端执行
ssh-keygen,一路回车生成默认的SSH公私钥。 - 把Mac本地的公钥内容(默认路径
~/.ssh/id_rsa.pub),添加到虚拟机root用户的/root/.ssh/authorized_keys文件中即可。
其他异常排查
如果修改配置后仍然无法登录,按以下项逐一排查:
- 确认网络连通性:在Mac终端执行
ping 虚拟机IP,能正常收到返回包说明网络通路正常。 - 确认SSH端口未被拦截:在虚拟机控制台执行
ufw status查看防火墙状态,如果防火墙为开启状态,执行ufw allow 22放行SSH默认端口。 - 确认root密码正确:如果不确定密码是否正确,在虚拟机控制台执行
passwd root重置root密码后再尝试登录。
内容的提问来源于stack exchange,提问作者hengyue kang
相关产品推荐
相关产品推荐

