问题描述
最近在远程登录腾讯云的服务器时发现巨慢, 而且在登录后会弹出下面这行提示:
Last failed login: Mon Sep 11 09:27:02 CST 2023 from 61.144.111.227 on ssh:notty
There were 8573 failed login attempts since the last successful login.
Last login: Mon Aug 28 17:36:20 2023 from 39.170.42.227
其实这个也算是正常,因为网上有成千上万的恶意机器人在尝试登陆你的机器,所以会留下这些登陆的记录.
要解决这个问题,有下面几个办法:
- 配置仅允许通过SSH密钥方式登录,禁止密码登录
- 将SSH的端口,从22改成其他端口(但这个只能减少简单的机器人的尝试,更多的机器人会扫描所有开放的端口)
- 安装fail2ban并启用其自动检测SSH多次登录失败的功能,以阻止重复尝试。如果在CentOS 8或CentOS 7上使用firewalld.
对于我而言,因为我直接使用root用户登录,风险其实挺大的,所以我得首先配置下禁止root用户登录,然后创建一个新的用户,后面使用这个新用户登录。
尝试解决
创建新用户
在root用户登录的情况下,使用以下命令创建用户并设置密码
useradd {username}
passwd {username}
在本地,使用以下命令将公钥拷贝到服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub {username}@{your_server_ip}
配置服务器的SSHD
打开 /etc/ssh/sshd_config 文件,做如下修改:
禁止root用户通过ssh登录
PermitRootLogin no
禁止通过密码方式登录
PasswordAuthentication no
配置完成后,重启sshd服务:
systemctl restart sshd
经过上面的配置后,我发现 SSH 登录服务器竟然变快了,😓,至于登录慢的真正原因,目前我还不清楚,不过也算是解决了问题.