如何使用 Root 访问 Ubuntu

如何使用 Root 访问 Ubuntu

我刚刚在我的 ubuntu1 服务器上创建了一个 root 帐户,如下所示:

packt@ubuntu1:~$ 
packt@ubuntu1:~$ sudo -i
[sudo] password for packt: 
root@ubuntu1:~# 

当我尝试使用以下命令从我的 centos 机器(或任何机器) ssh 这个 ubuntu 服务器时,我被拒绝权限。

[packt@centos1 ~]$ ssh root@ubuntu1
root@ubuntu1's password: 
Permission denied, please try again.
root@ubuntu1's password: 
Permission denied, please try again.
root@ubuntu1's password: 
Permission denied (publickey,password).
[packt@centos1 ~]$ 

我知道我可以从 ubuntu1 机器进入 root 权限,但我需要从其他机器使用 root 权限访问该机器。

有人能让我知道我错在哪里吗?

答案1

您正在使用 sudo 获取 root shell。这并不意味着您已启用 root 帐户。

要启用 root 登录,您必须为 root 设置密码:

sudo passwd root

然后你必须编辑你的sshd_config

 sudo editor /etc/ssh/sshd_config

改变

PermitRootLogin prohibit-password

PermitRootLogin yes

退出编辑器,然后使用以下命令重新启动 sshd

sudo systemctl 重新启动 openssh-server

请注意,我们不建议这么做。我真的想不出有什么理由需要通过 ssh 进行 root 访问。命令前面可以加上 sudo,并且 sudo 配置为无密码使用。文件复制?您通常可以修改目标的权限,这样您就不必是 root。

答案2

这里可能有多种原因。

首先,许多 Linux 发行版都带有,或者至少建议您将用户锁定rootssh这是因为每个系统都带有root,如果您知道用户,这会更容易暴力破解机器。虽然不是万无一失的,但很有帮助。

否则,您需要了解每个用户都有自己的密码,并且该用户的密码以及sudo在 中找到的条目/etc/sudoers允许用户成功执行命令sudo

需要澄清的是,当您使用此命令时,您使用的是 USER 密码:

sudo su -i

sudo检查您是否被允许运行该命令,并提示您输入用户密码。

当您登录计算机时,您将再次使用该 USER 密码。让您的 USER 和 root 帐户共享密码不太可能,而且是一种不好的做法。在这种情况下,由于您知道 USER 密码,因此您可以执行以下操作:

ssh USER@myserver
sudo su -

在这里,您可以使用 USER 帐户和已知密码访问系统,然后升级到 root。这解决了任何问题,也是您应该升级到 root 的方式。

如果您发现您的服务器允许 root 登录,但您使用的密码不正确,请务必锁定它。您的问题的其他答案建议您允许 root 登录,但相反,我要求您了解情况,并按照此建议保持安全。查找ssh强化,并至少设置fail2ban

答案3

默认情况下,通过 ssh 禁用 root 访问。您可以启用 root ssh 访问或以普通用户身份 ssh 并进行 su 或 sudo。

要通过 ssh 启用 root 登录:

以 root 身份编辑 /etc/ssh/sshd_config 中的 sshd_config 文件:

sudo nano /etc/ssh/sshd_config.

在文件的身份验证部分添加一行内容

PermitRootLogin 是 . ...

保存更新的 /etc/ssh/sshd_config 文件。重新启动 SSH 服务器:

sudo service sshd restart.

重要的提示

这不是解决问题的好办法,因为它暴露了 root 权限,而用户已经有了具有 sudo 权限的正确用户。这并没有解决问题,而是提供了一种不必要地增加风险并支持不良做法的变通方法。

使用 SSH 密钥进行 root 登录(可能更安全):

如果你必须通过 SSH 以 root 身份登录,使用 SSH 密钥登录可能更安全(也更简单)。设置过程稍长一些,但如何为 root 用户设置无密码 SSH 访问

相关内容