Linux禁用root账户ssh登录

前言

今天登录服务器的时候,控制台输出如下信息

There were 48990 failed login attempts since the last successful login. 
Last login: Thu Sep 26 14:01:34 2018 from xx.xxx.xxx.xx

意识不对,可能是服务器被攻击了,网上查了查,发现很多人遇到这样的问题

其他网友的说法:
你服务器 IP 在那儿,那 SSH 开在 TCP 22 上谁都能连,连上了谁都能输密码,密码错了就在系统里留下一条记录。
要么是被(无差别地)扫到了,要么是有人在盯着你。只说 SSH 登陆这事,如果你关闭密码登陆(或者密码足够健壮),那有个就算有一百万个猴子在试你的密码,你也完全不用担心的。

解决方法

关闭root用户的ssh登录

1. 使用root账户登录系统,添加一个普通账户例如test,并为其设置密码

useradd test 
passwd test

2. 修改配置文件

编辑配置文件/etc/ssh/sshd_config修改PermitRootLogin 后面的yesno,并且去掉前面的注释符,同时可以限制失败次数
注意: 这个失败次数是对所有用户都起作用的。

#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
MaxAuthTries 3
#MaxSessions 10

3. 重启sshd服务

systemctl restart sshd.service

此时再用root用户登录,此时再用root用户登录,如果不能登录则代表配置成功。如果需要使用root权限,可以使用su或者sudo进行切换。

注意:禁用root用户后使用sftp时可能出现登录不了的问题,目前还没找到解决办法

posted @ 2018-09-26 15:05  大不不  阅读(18736)  评论(0编辑  收藏  举报