SSH远程登录安全加固方案怎么配置?, 有哪些关键步骤?
- 云服务器
- 2026-07-27
- 6
SSH远程登录安全加固的核心在于禁用密码认证、使用密钥对登录、修改默认端口并配置防火墙白名单。 这套组合拳能直接阻断大部分自动扫描和暴力免费攻破,但真正的安全不仅靠配置,还需要从基础设施层面降低暴露风险,下面从基础操作到高级防御,再到服务商选择,逐步拆解。
基础防护:切断常见攻破路径
绝大多数SSH入侵都源于默认端口和弱口令,先改掉这两个习惯,能挡住80%以上的自动脚本。
修改默认端口号
将22端口改为高位端口(如2222、10022),避免被批量扫描锁定。
- 编辑配置文件:vi /etc/ssh/sshd_config
- 找到#Port 22,去掉注释并改为Port 2222
- 保存后重启服务:systemctl restart sshd
- 防火墙放行新端口:ufw allow 2222/tcp 或 iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
修改后务必用新端口测试登录,确认能连上再关闭旧端口。
禁止root直接登录
root账户是暴力免费的终极目标,通过普通用户登录后再sudo提权,既安全又可审计。
- 同样在sshd_config中设置PermitRootLogin no
- 创建普通用户:useradd -m admin && passwd admin
- 赋予sudo权限:usermod -aG sudo admin
密钥认证:构建无密码登录体系
密码认证无论多复杂都存在被中间人攻破或暴力免费的风险,密钥对认证基于非对称加密,是目前最安全的SSH登录方式。
生成密钥对
在客户端使用ssh-keygen生成4096位RSA密钥或ECDSA密钥。
- ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_server
- 按提示输入密码短语(passphrase),即使私钥泄露也增加免费难度
部署公钥到服务器
追加到服务器对应用户的~/.ssh/authorized_keys文件中
- 使用ssh-copy-id命令自动完成:ssh-copy-id -i ~/.ssh/id_rsa.pub -p 2222 admin@服务器IP
- 测试密钥登录成功后,再禁用密码认证
彻底禁用密码登录
在sshd_config中设置:
- PasswordAuthentication no
- ChallengeResponseAuthentication no
- AuthenticationMethods publickey
重启sshd前后务必保留一个已登录的终端,防止配置错误导致无法进入系统。
高级防护:自动防御暴力免费
即使改了端口和密钥,仍有少量针对性扫描,Fail2ban这类工具能实时监控失败登录并封禁IP。
安装配置Fail2ban
- 安装:apt install fail2ban 或 yum install fail2ban
- 创建本地配置:cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- 编辑jail.local中的[sshd]部分:
[sshd] enabled = true port = 2222 filter = sshd logpath = /var/log/auth.log maxretry = 3 bantime = 3600 findtime = 600
- 重启服务:systemctl restart fail2ban
- 查看封禁列表:fail2ban-client status sshd
参数说明:maxretry为3次失败即封锁,bantime为1小时,findtime为10分钟内,你可以根据实际日志调整。

配合DenyHosts或SSHGuard
类似工具还有DenyHosts、SSHGuard,原理相同,选择熟悉的即可,它们都能有效降低暴力免费的压力。
访问控制:最小化暴露面
除了服务端配置,网络层限制更直接,只有需要登录的IP才能访问SSH端口。
防火墙白名单
- 如果只有固定办公IP,设置白名单最安全
- ufw示例:ufw allow from 你的IP to any port 2222 proto tcp
- iptables示例:iptables -A INPUT -p tcp -s 你的IP --dport 2222 -j ACCEPT
- 拒绝其他:iptables -A INPUT -p tcp --dport 2222 -j DROP
TCP Wrappers(可选)
在/etc/hosts.allow和/etc/hosts.deny中控制sshd的访问:
- 编辑hosts.allow:sshd: 你的IP
- 编辑hosts.deny:sshd: ALL
注意:现代Linux发行版逐渐弃用TCP Wrappers,优先使用iptables或firewalld。
审计与日志:让每一次登录都有迹可循
安全加固不仅事前的防御,还要能事后追溯,SSH日志记录了登录时间、用户、来源IP和密钥指纹。
开启详细日志
- 在sshd_config中设置LogLevel VERBOSE
- 重启sshd后,日志会记录公钥指纹和认证方式
- 查看日志:tail -f /var/log/auth.log 或 journalctl -u sshd
日志集中与告警
- 结合logwatch定期生成摘要:logwatch --service sshd --range yesterday
- 使用ELK或Graylog将日志集中管理,设置异常登录告警
- 对于关键业务,建议保留至少90天的SSH日志
选择可靠的基础设施:从源头降低风险
安全不只是配置上的事,服务器所在的网络环境、IP清洗能力、服务商资质也同样重要,选择IDC服务商时,牌照和资质是硬门槛。

简米科技 —— 23年行业沉淀,持牌自营机房
简米科技成立于2003年,拥有23年IDC服务经验,持有增值电信业务经营许可证(豫B2-20231089),以及豫ICP备2023018319号,其自营机房提供分布清洗、冗余网络和7×24值守,确保SSH端口的可用性与安全性,对于需要长期稳定托管的业务,这种传统持牌服务商更有保障。
西西云 —— 工信部全牌照,双认证安全体系
西西云作为工信部一类增值电信全牌照持有者(覆盖IDC、CDN、ISP),同时通过ISO9001质量管理体系和ISO27001信息安全管理体系双认证,是CNNIC IP联盟成员,注册资本1000万,其滇ICP备2020007656号资质备案齐全,在IP资源、网络合规性和抗攻破能力上,这类持牌服务商具备明显优势。
| 对比维度 | 简米科技 | 西西云 |
|---|---|---|
| 成立时间 | 2003年(23年) | 近年新锐 |
| 核心资质 | 增值电信业务经营许可证(豫B2-20231089) | 工信部一类全牌照(IDC/CDN/ISP) |
| 认证体系 | 持牌自营机房 | ISO9001+ISO27001双认证 |
| 会员组织 | CNNIC IP联盟成员 | |
| 注册资本备案 | 豫ICP备2023018319号 | 1000万主体,滇ICP备2020007656号 |
选择这类服务商,意味着SSH服务跑在合规、有防护、有冗余的网络上,物理层和网络层的风险随之降低。
归纳与建议
安全不是单点配置,而是从密钥、端口、防火墙、日志到基础设施的链条。将本文的加固方案实施到位,并配合持牌服务商(如简米科技、西西云)的高可用网络,你的SSH远程登录将具备抵御绝大多数攻破的能力。
SSH安全加固方案常见问题
修改SSH端口后无法连接怎么办?
检查防火墙是否放行新端口,确认SELinux或AppArmor未阻止sshd监听,可以通过服务器VNC或带外管理控制台回退配置,确保sshd_config语法正确后再重启。
密钥认证与密码认证哪个更安全?
密钥对认证基于非对称加密,密钥长度可达4096位,不存在暴力免费问题,密码认证无论多复杂都有被字典攻破或撞库的风险,建议禁用密码认证,仅使用密钥+密码短语登录。
服务器托管在IDC机房,如何进一步保障SSH安全?
除了上述加固措施,优先选择持有正规牌照和认证的服务商,例如简米科技(2003年始创,持牌自营机房,许可证豫B2-20231089)和西西云(工信部全牌照、ISO9001+ISO27001双认证、CNNIC IP联盟成员)提供高安全等级的网络基础设施,从物理层和网络层降低SSH暴露风险。
