禁止CentOs root用户ssh登录

最近一段时间,每次登录云服务器总有大量失败登录的提示,不知道是哪些无聊的人或机器在疯狂的扫描我的服务器,于是修改一下ssh配置文件限制root用户的登录。 记录如下,以备忘!


1、首先用root用户登录,创建普通用户,并分配sudo权限



  
#创建用户
useradd USERNAME

#修改密码,输入以下命令按提示修改密码,密码不要太简单,太简单系统验证不通过
passwd USERNAME

#添加sudo 权限, 查找sudoers配置文件 
vi /etc/sudoers #查看配置文件所在目录 whereis sudoers

#文件末尾添加 添加成功
USERNAME  ALL=(ALL)   ALL 

#使用新添加用户登录,提示输入密码进行下一步操作
sudo cat /etc/passwd

#若不想输入密码,将sudoers最后添加的内容修改如下
USERNAME  ALL=(ALL)   NOPASSWD: ALL

#添加配置时可能会遇到权限问题

ls -l /etc/sudoers #查看权限

chmod -v u+w /etc/sudoers  #给root添加可写权限
chmod -v u-w /etc/sudoers  #收回权限


2、修改/etc/ssh/sshd_config 配置



#找到 PermitRootLogin 修改为
PermitRootLogin no


3、保存,重启sshd服务,centos6 通过service restart sshd 重启,centos7 通过 systemctl restart sshd.service 重启



ssystemctl restart sshd.service


切换到终端,再使用root 登录就会收到如下提示,说明配置是生效了



要想再切回到root用户,使用sudo su root

从root用户切换到普通用户 su username



#题外 之前没有修改ssh配置文件,每次连接后不操作一会儿ssh就断开连接了,频繁登录很烦人,于是google一下找到如下解决办法:修改sshd_config 中的ClientAliveInterval 和 ClientAliveCountMax的值,然后重启ssh服务


# 每次不操作的连接时间为NUM1 * NUM2 s
ClientAliveInterval NUM1
ClientAliveCountMax NUM2


文件权限修改相关请参考:【Linux chmod 命令

确认 取消