Linux系统默认情况下,是可以通过ssh以root权限登录的。但出于安全考虑,这样的权限是不合适的,因为黑客可能通过暴力破解你的root密码,然后进入你的系统。
为了保证服务器安全,几乎所有的服务器都禁止了超级用户直接登录系统,而是通过普通用户登录系统,然后再通过su命令或者sudo命令切换到超级用户下,执行一些需要超级权限的工作。而不是一直以root用户在系统中横冲直撞,因为说不定什么时候你手一抖,就进行了一些危险性的操作。
那么如何禁止以root通过ssh登录到系统呢?
是否允许root用户通过ssh登录,是通过操作sshd_config配置文件来实现的。当一个ssh连接建立时,操作系统会检查相关文件的配置信息,从而决定是否接受该连接。
因此,为禁止root用户通过ssh登录,我们先找到 /etc/ssh/sshd_config文件,通过编辑器打开该文件。比如,通过vi打开该文件:
# vi /etc/ssh/sshd_config
在文件中找到下面一行文字:
#PermitRootLogin no
去掉该行前面的#号,使其成为下面这样:
PermitRootLogin no
接下来,在shell中输入以下命令来重启ssh服务
# service sshd restart
这样当你再试图以root登录系统时,就会出现“拒绝访问”的错误提示信息:
login as: root
Access denied
root@172.31.41.51's password:
如果想要恢复root用户通过ssh登录的权限,我们只要将开始的改变改回去就行。
如果你的系统里用户众多,想允许一部分用户通过ssh登录,而其他用户则禁止通过ssh登录。可以打开文件/etc/ssh/sshd_config,然后在文件的末尾加上这样一行文字,其中user1、user2即为允许通过ssh登录的用户。
AllowUsers user1 user2