VPS安装Debian 8后如何禁用root SSH登录
我们在一台VPS服务器安装了Debian 8 Server操作系统后,一件非常重要的事情是创建一个新用户并且赋予这个新用户root权限,然后再禁止root用户通过SSH登录。这是服务器安全的基本要求。首先,在任何一台Linux服务器上都会有root用户,黑客可以用暴力破解的方法得出root用户密码。而黑客并不知道我们新建用户的名称,所以暴力破解失去作用。其次,root用户在任何情况下都是以root权限执行操作,一个不小心的操作便会对系统造成破坏。
新建一个用户
以root身份通过SSH登录VPS后,输入下面的命令添加一个新用户,将username替换成新用户的用户名。
adduser username
然后系统会提示为新用户设置一个密码。在输入完后密码后,系统要求提供新用户的人名,电话等信息,我们可以不输入任何信息,一路按回车键,最后按Y键确认。
赋予新用户root权限
现在,只有root用户具有管理系统的权限。我们现在给新创建的用户赋予root权限以管理系统。当你以这个新用户来进行root权限的管理工作时,需要在命令前面加上sudo。以sudo执行命令都会被记录下/var/log/secure文件中,如果将来需要时可以查看这个文件。
安装sudo工具
apt-get install sudo
然后输入命令:
visudo
这条命令将会打开/etc/sudoers文件,在这个文件中找到User privilege specification。如下:
将下面一行文字复制到root ALL=(ALL:ALL) ALL这一行下面。把username替换成新用户的用户名。
username ALL=(ALL:ALL) ALL
保存文件后退出。
现在新用户有了root权限。我们也可以输入下面的命令来给用户赋予root权限,这条命令会将用户添加到sudo用户组中。将username替换成新用户的用户名。
usermod -a -G sudo username
用这条命令也可以赋予用户root权限。
禁止root用户通过SSH登录Linux服务器
我们新建好一个管理员用户后,就可以禁止root用户通过SSH登录了。步骤如下:
首先以root用户登录系统,然后用你喜欢的文本编辑器打开/etc/ssh/sshd_config文件(nano, vi等)。
vi /etc/ssh/sshd_config
找到PermitRootLogin yes这一行文字,将它更改成如下:
PermitRootLogin no
在文件末尾添加下面一行文字。将username替换成新用户的用户名。
AllowUsers username
保存/etc/ssh/sshd_config文件并退出文本编辑器。然后重启SSH服务
service ssh restart 或 systemctl restart ssh
现在你仍然是以root身份登录的,这时候你可打开另外一个终端,以新用户通过SSH登录系统。如果前面的设置正确,那么新用户应该可以登录。如果不能登录的话,请检查之前的设置。在新用户成功登录之前,不要关闭root用户的登录。
经过上面的配置后,root用户通过SSH登录系统时即使密码输入正确也会提示Permission denied。我们现在可以用新用户登录来管理系统,或者在新用户登录后用su命令切到root用户来管理系统。