一聚教程网:一个值得你收藏的教程网站

热门教程

linux中禁止root用户ssh远程登录并修改ssh远程登录端口

时间:2022-11-14 22:07:57 编辑:袖梨 来源:一聚教程网

服务器的安全性不言而喻,服务器安全性设置的第一步就是堵住入口。

对于linux而言,堵住入口,就是不让别人能随便进入我们的服务器里面乱搞,不然一个命令 “rm -rf / “,后果不堪设想。所以不能让别人进入我们的服务器,更加不能让别人用root用户进去。所以最好的做法就是:

在linux上面设置禁止root用户远程登录,并且修改ssh端口【因为默认的端口是22,改了设置多一层障碍】,然后我们需要登录进去的时候,就用一个没有权限的用户登录进去,然后再用su命令切换到root或者其他有权限操作的用户。

这样做了之后,别人哪怕知道服务器的ip,但是不知道端口,也不知道是要用什么用户登录,暴力破解也破解不了。

以centos为例,设置linux禁止root用户ssh远程登录,使用其他用户登录:

1、用root用户登录进去

2、使用groupadd命令新建一个login的分组,专门用于登录

# groupadd login
3、去存放组信息文件 /etc/group 里面检查login分组是否添加成功,如果在输出的信息里有 login:x:501: 这样的信息,就说明成功了【后面的501并不是每台机子都一样,501是这个组的标识id,会因你服务器已经拥有的组不同而不同,默认是从500开始排序的,所以有login就是成功了】

# cat /etc/group
4、使用useradd命令新建一个 zhoumanhe 用户用于ssh远程登录,属于login分组,该用户目录在 /home/zhoumanhe 下

# useradd zhoumanhe -g login -G login -d /home/zhoumanhe
5、去存放用户信息文件 /etc/passwd 检查用户是否添加成功。如果输出信息里面有 zhoumanhe:x:501:501::/home/zhoumanhe:/bin/bash 则说明用户添加成功,并且属于login组【因为有501,login组的标识id就是501】

# cat /etc/passwd
6、使用passwd命令给zhoumanhe用户添加一个登陆密码,刚刚添加完是还没有设置密码的。

# passwd zhoumanhe
Changing password for user zhoumanhe.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
特别严重的提示 : 其实在使用useradd命令也是可以直接为添加用户设置密码的,后面加上“ -p 要设置的密码 ”为什么独立出来,因为如果直接这样添加,存进密码文件里面的密码就是明文的,就是说你的密码是123,存进去的密码也是123,到那时linux用户的登录密码是要经过加密的,所以可能导致linux新添加的用户登录失败,而刚刚添加完用户,su切换到新添加用户,输入passwd更改密码的时候也会提示 “Authentication token manipulation error”,因为改密码要先输入旧的密码,你输入123,但是真实的密码确实加密过了的,所以提示出错。所以出现这个问题的朋友,可以切换到root用户,使用 “passwd 用户名”来改新添加用户的密码。想看一下成功了没有?行,打开存放密码的文件看一下就知道了,使用命令 “ cat /etc/shadow ”查看即可,如果出现了 用户名:一长字符串,那就是成功了,如果出现的是你输入的明文密码,那就重新修改密码吧!
7、这样的话就设置成功了。管理远程登录软件,试用您刚刚添加的zhoumanhe用户登录看一下吧。

8、如果成功了,那我们就可以禁止掉root用户的远程登录了。

9、使用root登录进去,如果是在刚刚添加的zhoumanhe用户,就是用直接输入su,回车,输入密码切换到root用户。

$
$ su
Password:
#
10、这个的配置信息在 /etc/ssh/sshd_config 这个文件里面,所以打开这个文件

# vi /etc/ssh/sshd_config
11、找到 PermitRootLogin yes 这一句,将yes改成no,退出保存;

PermitRootLogin no
12、修改了ssh的配置文件,所以还得重启一下ssh服务才能生效,输入以下命令重启:

# service sshd restart
13、然后就重新使用ssh软件,使用root用户登录看一下吧,在login as:后面输入root,然后回车,让你输入密码,输入密码之后,是不是发现密码是正确的,但是提示”Access denied”。说明root已经被禁止掉ssh远程登录了;

14、我们就更改一下centos使用ssh远程登录的端口。还是打开 /etc/ssh/sshd_config 这个文件。

# vi /etc/ssh/sshd_config
15、找到 #Port 22 这一行,把前面的#去掉,变成 Port 22,然后回车,再下一行输入 Port 8888 ,然后:wq保存退出。【8888就是你要设置的端口,改成你想设置的就行,一般改成一个自己好记的,但是不能是现在已经用着的端口,不然有冲突。】

#Port 22
#改成如下
Port 22
Port 8888
这样是不是就有了两行的Port了?没错,就是要两行,22那一行是用于以防万一的,为了避免,我们设置的另外一个端口万一登录不上,我们还可以使用22端口登录上去改,不然没有预留22端口,自己新添加的那个也登录不上去,那就只有。。。。联系客服吧!
16、刚刚我们知道,修改了ssh的配置文件,需要重启ssh服务器。

17、使用刚刚的那个端口登录看一下吧,成功了?,成功了就可以再次打开 /etc/ssh/sshd_config 这个文件把 Port 22 这一行删除掉,然后再次保存退出,重启ssh服务。

18、到了这里,我们的“linux禁止root用户ssh远程登录并修改ssh远程登录端口”目的达到了。以后登录,就用新端口,新用户登录吧,登录进去再su切换root或者其他权限用户。

热门栏目