首页/系统/信创系统运维速查/SSH 服务基础加固
安全加固65 条

SSH 服务基础加固

SSH 加固先做基线检查:禁空口令、限试错、关不必要转发、按需禁 root 与口令登录;改完 sshd -t 校验再 reload,保留在线会话做逃生通道。

信创系统运维速查系统更新于 2026-10-13

SSH 加固的基本盘

SSH 加固的顺序应该是「先减少可被攻击的面,再收紧认证强度」:关掉用不到的功能(空口令、转发、图形转发),限制尝试次数与会话等待时间,按业务需要决定是否允许 root 直接登录,能上密钥认证就逐步停用口令认证。所有改动都落在 /etc/ssh/sshd_config 或它的 include 目录里,改完必须先用 sshd -t 做语法校验,再 reload 让配置生效,避免把语法错误带上线导致服务起不来。

基本信息

配置文件/etc/ssh/sshd_config(部分版本另有 sshd_config.d/ 片段)
语法校验sshd -t,改完必做
生效方式systemctl reload 服务名,不断开已有连接
服务名差异RPM 系通常为 sshd,DEB 系通常为 ssh
适用平台Kylin V10 / UOS / openEuler 均为 OpenSSH

典型使用场景

  • 等保或内审前的基线整改:逐项核对高风险配置并留档
  • 新服务器上线:装好即按基线配置,避免先松后紧
  • 暴露面收敛:只允许管理网段访问,其余来源在防火墙上直接丢弃
  • 审计取证:开启登录日志记录,确认失败尝试的来源与频率
  • 账号收敛:限定允许登录的用户或用户组,缩小可被爆破的账号范围
  • 配置变更安全检查:改完先校验再重载,确认新会话可登录后再收工

加固配置示例

加固配置示例
PermitRootLogin no              # 按业务取舍,至少不用口令直接登录 root
PermitEmptyPasswords no         # 禁止空口令账号登录
MaxAuthTries 3                  # 单次连接最多尝试次数
LoginGraceTime 60               # 未完成认证的连接存活时间,单位秒
X11Forwarding no                # 用不到图形转发就关掉
AllowUsers ops@10.0.0.0/8       # 限定可登录账号与来源网段
LogLevel VERBOSE                # 记录登录相关信息,便于审计

改动与验证

改动与验证
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak   # 改前留备份
sshd -t                                            # 语法校验,必须先过
sshd -T | grep -E 'permitrootlogin|maxauthtries|allowusers'   # 看最终生效值
systemctl reload sshd                              # 生效,不断开现有连接
journalctl -u sshd -n 50 --no-pager                # 观察是否有异常登录尝试

加固项与代价

配置项收紧后收益可能的代价
PermitRootLogin no爆破成功也无法直接拿最高权限需改用普通账号再提权
AllowUsers / AllowGroups大幅缩小可登录账号范围新增运维账号时容易忘记放行
MaxAuthTries 调小降低口令穷举成功率密钥多、代理多时易触发失败
关闭转发功能减少隧道被滥用的风险影响图形客户端与端口转发类工具
改监听端口减少扫描器噪声需同步改防火墙与客户端配置
改 SSH 配置属于高风险操作:务必保留一个已经登录的会话不退出,同时准备好带外通道(串口或管理口),确认用新配置能登录之后,再关闭旧会话。直接全关现有会话,很容易把自己锁在机器外面。
禁止 root 直接登录不等于禁止提权,日常仍应使用普通账号登录再切到管理权限,这样审计日志能记录到具体的人。若必须保留 root 登录,至少改成仅允许密钥方式,并配合来源限制。

易错点

  • 服务名写成 sshd 却忽略 DEB 系(UOS 等)实际服务名为 ssh,reload 报错后误判为配置有问题
  • 配置语法错误直接 reload 或 restart,导致 SSH 服务起不来,若无带外通道就彻底失联
  • 只改 sshd_config 没注意 include 目录里的片段覆盖了主文件,最终生效值与预期不符
  • 关闭转发类功能前没确认运维工具链是否依赖,结果图形化客户端与隧道类工具集体不可用

数据来源与参考

  • man 5 sshd_config
  • 红帽安全指南(SSH 加固)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌