SSH 安全加固的五个实用做法

举报
yd_211758112 发表于 2026/11/02 12:31:33 2026/11/02
【摘要】 SSH 是 Linux 服务器最常用、也最暴露的管理通道,默认配置往往把 root 密码直接暴露给全网扫描。实际运维中,只需五步就能把 SSH 的攻击面压到很低,而且不影响正常使用。一、强制使用密钥登录,关闭密码认证在 /etc/ssh/sshd_config 中设置:PubkeyAuthentication yesPasswordAuthentication no使用 ssh-keygen...

SSH 是 Linux 服务器最常用、也最暴露的管理通道,默认配置往往把 root 密码直接暴露给全网扫描。实际运维中,只需五步就能把 SSH 的攻击面压到很低,而且不影响正常使用。


一、强制使用密钥登录,关闭密码认证


在 /etc/ssh/sshd_config 中设置:


PubkeyAuthentication yes

PasswordAuthentication no


使用 ssh-keygen -t ed25519 生成密钥对,把公钥放入 ~/.ssh/authorized_keys,并 chmod 600 authorized_keys、chmod 700 ~/.ssh。关掉密码后,即使密码被字典跑破也无法登录。注意:关闭前务必先在本地用密钥验证一次,否则可能把自己锁在外面。


二、禁止 root 直接登录


把 PermitRootLogin 改为 no:


PermitRootLogin no


日常使用一个普通用户登录,需要提权时用 sudo 完成。这样攻击者无法针对一个固定用户名爆破,审计日志也能清楚记录是谁在操作。如果必须保留 root 通道,至少改为 prohibit-password 而不是 yes。


三、更换默认 22 端口,并配合 fail2ban


在 sshd_config 中把 Port 改为高位端口,比如 Port 22222,同时防火墙只放行该端口:


firewall-cmd --permanent --add-port=22222/tcp

firewall-cmd --reload


端口变换能过滤掉大量无差别扫描。更稳妥的做法是部署 fail2ban,监控 /var/log/secure 中的 sshd 失败记录,达到阈值自动封禁 IP:


[sshd]

enabled = true

port = ssh

filter = sshd

logpath = /var/log/secure

maxretry = 3

bantime = 600


配合 bbr / iptables 或 firewalld,误封时可用 fail2ban-client get sshd 查看并排除。


四、使用 AllowUsers / AllowGroups 白名单


在 sshd_config 末尾加上:


AllowUsers deploy admin

# 或 AllowGroups sshusers


白名单只允许指定用户或组通过 SSH 登录,其余账号即使密钥和端口都猜对也无法建立会话。对多用户服务器,推荐用 AllowGroups:把需要远程登录的成员加入 sshusers 组,后续增删人员只需 usermod,不需要改 sshd 配置。改完白名单记得 systemctl reload sshd。


五、保持 SSH 版本更新,开启审计与登录提示


使用系统包管理器把 openssh-server 保持最新,及时修补漏洞(例如早期的 CVE-2024 系列)。在 sshd_config 中打开日志级别:


LogLevel VERBOSE


VERBOSE 会在 /var/log/secure 记录每一次公钥验证、用户映射和登录结果。同时建议配置 Banner /etc/motd,在登录前显示版权声明和使用规范,既满足合规审计,也能在纠纷时留下连接端的 IP 和指纹证据。


结语


以上五步——密钥登录、禁 root、改端口加 fail2ban、AllowUsers 白名单、保持更新与 VERBOSE 审计日志——按顺序落地,可以把 SSH 的常见攻击面(爆破、默认端口扫描、越权)基本清零。每改一项配置后都要用 ssh -o PasswordAuthentication=no -i ~/.ssh/id_ed25519 user@host 做一次验证,确认能进再提交。安全不是一次到位,而是每次变更都留得下日志、关得掉通道。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。