众所周知,Linux系统自带root用户访问权限,并且默认情况下为外部用户启用了root访问权限。出于安全原因,为未经授权的用户启用SSH root访问不是明智之举,因为任何黑客都可以尝试暴力破解密码并访问系统。
因此,最好拥有另一个经常使用的帐户(非root用户),然后在必要时使用“su – ”命令切换到root用户。所以,在开始之前,请确保有一个普通用户帐户,并使用su或sudo来获得root访问权限。
其实,在Linux系统中,额外创建帐户非常容易,以root用户身份登录,只需运行“ adduser ”命令即可创建单独的用户。创建用户后,只需按照以下步骤通过SSH禁用root登录即可。
本文将使用sshd主配置文件来禁用root登录,这可能会减少并阻止黑客获得对Linux系统的root访问权限。与此同时,小编也将一并介绍如何再次启用root访问以及根据users列表限制 ssh 访问。
禁用SSH Root登录
要禁用root登录,请使用编辑器打开主ssh配置文件/etc/ssh/sshd_config,命令如下:
# vi /etc/ssh/sshd_config
在配置文件中搜索以下内容。
#PermitRootLogin no
将改行首页的“ # ”字符删除,如下:
PermitRootLogin no
接下来需要重新启动SSH守护进程服务。
# /etc/init.d/sshd restart
现在尝试使用root用户登录,将收到“Access Denied”错误。
login as: root Access denied root@172.31.41.51's password:
因此,从现在开始能够以普通用户身份登录,然后使用“su”命令切换到 root 用户。
login as: idccoupon Access denied idccoupon@172.16.25.128's password: Last login: Sat Oct 9 17:37:56 2021 from 152.16.25.125 [idccoupon@idccoupon ~]$ su - Password: [root@idccoupon ~]#
启用SSH root登录
要启用ssh root用户登录,请打开文件/etc/ssh/sshd_config:
# vi /etc/ssh/sshd_config
搜索以下行并将“ # ”放在开头并保存文件。
# PermitRootLogin no
重新启动sshd服务。
# /etc/init.d/sshd restart
现在尝试使用 root 用户登录。
login as: root Access denied root@172.16.25.128's password: Last login: Sta Oct 9 18:51:41 2021 from 152.16.25.125 [root@idccoupon ~]#
限制SSH用户登录
如果系统上拥有大量用户帐户,那么限制/允许某些用户访问是非常有必要的。打开/etc/ssh/sshd_config文件。
# vi /etc/ssh/sshd_config
在文件底部添加一个AllowUsers行,并用空格将用户名列表隔开。例如,用户idccoupon和sheena都可以访问远程ssh。
AllowUsers idccoupon sheena
现在重新启动ssh服务即可:
# /etc/init.d/sshd restart
这样,除了idccoupon和sheena用户可以SSH登录之外,系统上的其它用户都不能进行远程SSH登录。