我有一个装有 Ubuntu 14.04 的 VPS。我需要通过 SSH 以 root 身份登录到我的服务器。
我为 root 设置了密码:sudo passwd root
然后启用它:sudo passwd -u root
然后重新启动我的 vps:sudo reboot
但我仍然无法以 root 用户身份连接。如何启用 ssh 登录根?
答案1
Ubuntu 14.04 中的 /etc/ssh/sshd_config 默认为
PermitRootLogin without-password
禁止使用密码验证的 root 登录。这是一个好主意,因为针对 root 用户的暴力登录尝试非常常见。
要以 root 身份登录,我建议设置基于密钥的 SSH 登录。另一个(危险的!)可能性是将选项更改为PermitRootLogin yes
。
答案2
这并不能直接回答问题,但如果你的目的只是远程管理你的机器,那么通常认为以非 root 用户身份登录是更好、更安全的做法,然后在服务器上启动会话后提升你的权限。
换句话说,您可能不想使用 ssh root@yourserver,而是希望以您自己的身份(您自己独特的用户名和帐户)登录,然后运行,sudo bash
甚至su
在登录后以 root 身份进行身份验证。您还可以在大多数命令前面加上,sudo
以便以 root 的权限级别运行该命令,例如:
sudo cp /etc/configthing.conf /etc/configthing.conf.orig
或者
sudo rm -i /var/log/syslog.3.gz
答案3
如果你坚持要以 root 身份登录,我建议以普通用户身份登录,运行
sudo tail -f /var/log/auth.log
然后(不关闭该会话),尝试通过 SSH 以 root 身份登录并观察第一个会话中出现的身份验证错误消息。
您应该能够从那里找出无法以 root 身份登录的原因,否则发布 /etc/ssh/sshd_config 可能会让您更快地得到答案。
答案4
网上有很多例子,我就不再重复了。
他们没有说的一件事是你需要:
ssh-add [path_to_key]
当使用自定义名称(非默认)作为密钥时。
如果您坚持只使用密码而不是公私密钥对:
ssh root@server-ip-or-hostname
并输入您的通行证。