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
后面的yes
为no
,并且去掉前面的注释符,同时可以限制失败次数
注意: 这个失败次数是对所有用户都起作用的。
#LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
MaxAuthTries 3
#MaxSessions 10
3. 重启sshd
服务
systemctl restart sshd.service
此时再用root
用户登录,此时再用root
用户登录,如果不能登录则代表配置成功。如果需要使用root
权限,可以使用su
或者sudo
进行切换。
注意:禁用root
用户后使用sftp
时可能出现登录不了的问题,目前还没找到解决办法