
随便找台开了 22 端口的服务器看下日志,lastb 命令刷出来一屏又一屏的失败登录,全是脚本在扫弱口令。密码登录是当前云主机被打穿的头号入口,加固只需三步,半小时搞定,收益却是终身的。
第一步,改用密钥登录。本机生成密钥对,公钥放到服务器:
# 本机生成(一路回车,或设个口令更稳)
ssh-keygen -t ed25519
# 公钥传到服务器
ssh-copy-id root@服务器IP
# 验证密钥能登录成功后,再进行下一步!顺序不能反
第二步,关掉密码登录和 root 直登。改配置前务必保持当前会话别断,另开窗口测试新配置,不然锁在外面只能去云控制台救援了。
# /etc/ssh/sshd_config
PasswordAuthentication no # 禁密码
PermitRootLogin prohibit-password # root只能密钥登录
Port 2222 # 顺手改个非默认端口(可选)
# 校验配置语法,无误后重启
sshd -t && systemctl restart sshd
第三步,收紧到只允许特定来源。如果办公地或家里的出口 IP 固定,防火墙层面直接只放行自家 IP 连 SSH,扫描流量根本到不了 sshd:
# firewalld 示例:只允许指定IP连新端口
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=你的IP port port=2222 protocol=tcp accept'
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload
验证方法:另开终端确认密钥能正常登录、密码方式被拒绝、旧 22 端口连不上。三步做完,自动化爆破对你这台机器基本失效——脚本扫到密钥认证就直接放弃了。
密钥文件本身要当密码保管,私钥丢了等于大门钥匙丢了。多台服务器不要图省事全部用同一把密钥,重要机器单独一把,泄露时止损范围可控。
数据来源:SSH官方文档
A5创业网 版权所有