平时登录 Linux 系统中,都是使用 root 用户的身份登录的。实际上,使用 root 登录是有一定的危险性。假如 root 用户没有使用密钥而是使用密码登录,密码设置简单容易被破解,设置复杂自己也记不住,存放在第三方还是有被窃取的风险。密码丢失会导致其他用户可以远程登录 root 用户,存在风险。

所以安全起见,可以禁止 root 远程登录,本地 root 登录是禁止不了的。现在可以设置为只允许登录普通用户,普通用户要想拿到一些 root 用户的权限,可以使用 su 和 sudo 命令,来实现临时切换 root 用户,而无法知道 root 用户密码。具体操作是把 su 命令放到 sudo 命令列表里面,之后就可以使用 sudo 命令远程使用 root 权限。

简单来说一下限制 root 远程登录的逻辑:

因为 root 用户无法登录,所以先登录到普通用户里,再 su 切换到 root 用户下面,这时候就需要输入 root 用户密码,而密码又是不知道的。而在 root 用户下面切换到 root 是不需要密码的,见下图,

centos jenksin项目限制指定节点 centos限制root远程登录_普通用户


输入命令 visudo ,进入编辑模式,在 User_Alias 下面增加一条设置,见下图,

centos jenksin项目限制指定节点 centos限制root远程登录_运维_02


然后在下面继续设定一个规则,见下图,

centos jenksin项目限制指定节点 centos限制root远程登录_运维_03


保存退出后,见下图,

centos jenksin项目限制指定节点 centos限制root远程登录_操作系统_04


先切换到普通用户 lys ,再切换到 root 用户,这时候就可以不输入密码登录了。

以上操作的前提是远程登录 root 。不过这个 ALL 权限有点大,可以直接更改 root 密码,然后直接登录 root 用户。这还是不行的,所以需要限制 root 用户远程登录的功能。输入命令 vi /etc/ssh/sshd_config ,回车,见下图,

centos jenksin项目限制指定节点 centos限制root远程登录_操作系统_05


这边直接输入“/”,后面加查找内容,就可以查找。输入“/Root”,回车,

centos jenksin项目限制指定节点 centos限制root远程登录_运维_06


我们需要的是上图红色框框的内容,将前面的 # 号删除,yes 改为 no ,见下图,

centos jenksin项目限制指定节点 centos限制root远程登录_远程登录_07


接着保存后退出。改完配置文件后,需要重启网络服务,输入命令 systemctl restart sshd.service ,回车即可。然后重新打开一个服务器 PuTTY ,看看还能不能登录,见下图,

centos jenksin项目限制指定节点 centos限制root远程登录_操作系统_08


可以看出不能登录,而且输入了 root 密码也还是不能登录。接着在 PuTTY 上登录用户 lys ,见下图,

centos jenksin项目限制指定节点 centos限制root远程登录_普通用户_09


可以登录普通用户 lys ,访问目录 /root/ 被拒绝,切换用户 root 的时候,提示需要输入密码,我们这边假定是不知道 root 密码的,所以最后使用 sudo 命令就可以成功登录 root 用户。

以上说明限制 root 远程登录成功了。为了以后方便做实验,还是要把远程登录限制去掉的。

centos jenksin项目限制指定节点 centos限制root远程登录_重启_10


输入命令 vi /etc/ssh/sshd_config ,回车,恢复上图内容,保存后退出,输入命令 systemctl restart sshd.service ,回车即可重启网络。然后 PuTTY 上就可以重新登录 root 了。

centos jenksin项目限制指定节点 centos限制root远程登录_远程登录_11