服务器SSH安全加固,改端口和密钥登录
时间:2026-10-9 07:46 作者:emer 分类: 无
前言
服务器刚买,SSH一直被暴力破解?默认22端口全是黑客在扫。本文讲怎么SSH安全加固:改端口、禁用密码登录、用密钥登录。
一、为什么要加固SSH
默认SSH配置太危险:
- 端口22是公开的,黑客都扫
- root密码登录容易被暴力破解
- 密码可能被盗
二、第一步:改SSH端口
编辑SSH配置
vi /etc/ssh/sshd_config
找到:
#Port 22
改成:
Port 22222
(随便选个1024-65535之间的端口)
防火墙开放新端口
firewalld:
firewall-cmd --permanent --add-port=22222/tcp
firewall-cmd --reload
iptables:
iptables -I INPUT -p tcp --dport 22222 -j ACCEPT
重启SSH
systemctl restart sshd
注意: 改完端口后,连接SSH要用新端口:
ssh -p 22222 root@服务器IP
三、第二步:生成密钥对
在你自己电脑上生成
ssh-keygen -t rsa -b 4096
一路回车,生成两个文件:
~/.ssh/id_rsa(私钥,自己留着)~/.ssh/id_rsa.pub(公钥,传到服务器)
把公钥传到服务器
ssh-copy-id -p 22222 root@服务器IP
或者手动传:
# 服务器上创建.ssh目录
mkdir -p ~/.ssh
chmod 700 ~/.ssh
# 把公钥内容追加到authorized_keys
vi ~/.ssh/authorized_keys
# 把id_rsa.pub的内容粘进去
chmod 600 ~/.ssh/authorized_keys
测试密钥登录
ssh -p 22222 root@服务器IP
不用输密码就能登录就对了。
四、第三步:禁用密码登录
编辑SSH配置
vi /etc/ssh/sshd_config
找到:
#PasswordAuthentication yes
改成:
PasswordAuthentication no
找到:
#PermitRootLogin yes
改成:
PermitRootLogin prohibit-password
(允许root用密钥登录,但不允许密码登录)
重启SSH
systemctl restart sshd
五、第四步:其他安全设置
限制登录尝试次数
防止暴力破解:
MaxAuthTries 3
登录超时时间
ClientAliveInterval 300
ClientAliveCountMax 2
禁止空密码登录
PermitEmptyPasswords no
只允许特定用户登录
AllowUsers root
六、安装fail2ban
自动封禁暴力破解的IP。
安装
yum install -y epel-release
yum install -y fail2ban
配置
vi /etc/fail2ban/jail.local
加内容:
[sshd]
enabled = true
port = 22222
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 86400
启动
systemctl start fail2ban
systemctl enable fail2ban
七、完整配置文件参考
vi /etc/ssh/sshd_config
Port 22222
PermitRootLogin prohibit-password
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
PermitEmptyPasswords no
改完重启:
systemctl restart sshd
八、常见坑
坑1:改完端口连不上了
原因: 防火墙没开放新端口。
解决:
- 云服务器还要在控制台安全组里开放端口
- 先开新窗口测试,别关旧窗口
坑2:密钥登录失败
原因: 权限不对。
检查:
ls -ld ~/.ssh
ls -l ~/.ssh/authorized_keys
正确权限:
- .ssh目录:700
- authorized_keys:600
坑3:禁用密码后进不去了
原因: 密钥没配好就禁用密码了。
解决: 一定先测试密钥登录成功,再禁用密码。
坑4:云服务器安全组没开
改了端口,防火墙也开了,但还是连不上。
原因: 云服务商的安全组没开。
解决: 去云控制台(阿里云/腾讯云)安全组里开放端口。
总结
记住:
- 改SSH默认端口(22改成别的)
- 生成密钥对,传公钥到服务器
- 测试密钥登录成功
- 禁用密码登录
- 安装fail2ban自动封IP
- 云服务器记得开安全组
安全加固顺序:
改端口 → 配密钥 → 测试登录 → 禁密码 → 装fail2ban
遇到问题加QQ23979811 协助处理