首页 > 系统 > Linux > 正文

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

2024-08-27 23:58:37
字体:
来源:转载
供稿:网友

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

对于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用户添加一个登陆密码,刚刚添加完是还没有设置密码的.

  1. # passwd zhoumanhe 
  2. Changing password for user zhoumanhe. 
  3. New password:  --Vevb.com 
  4. Retype new password
  5. 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用户.

  1. $ su 
  2. 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就是你要设置的端口,改成你想设置的就行,一般改成一个自己好记的,但是不能是现在已经用着的端口,不然有冲突.

  1. #Port 22  
  2.  #改成如下 
  3. Port 22 
  4. Port 8888 

这样是不是就有了两行的Port了?没错,就是要两行,22那一行是用于以防万一的,为了避免,我们设置的另外一个端口万一登录不上,我们还可以使用22端口登录上去改,不然没有预留22端口,自己新添加的那个也登录不上去,那就只有联系客服吧.

16、刚刚我们知道,修改了ssh的配置文件,需要重启ssh服务器。

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表