首页/安全/漏洞与攻击面速查/sshd 安全配置基线
主机与服务风险面53 条

sshd 安全配置基线

除认证方式外,sshd 还有一组值得固定的基线项:禁用空口令、限制认证尝试、限制转发能力、配置登录横幅与日志级别;可用 sshd -T 输出生效配置核对。

漏洞与攻击面速查安全更新于 2026-10-13

sshd 基线要固定什么

除了认证方式,sshd 还有一组值得固定下来的基线项:禁用空口令登录、限制认证尝试次数与登录宽限时间、限制不必要的转发与会话能力、设置合理日志级别。只看配置文件往往不够,因为最终生效值会受默认值、Include 文件与 Match 段影响,正确的核对方式是让 sshd 输出最终生效配置。

基本信息

适用平台Linux 与 Unix 发行版上的 OpenSSH 服务
配置文件/etc/ssh/sshd_config 以及 sshd_config.d/*.conf
语法校验sshd -t,改完必须先过这一步
生效核对sshd -T 输出最终生效值
生效方式systemctl reload sshd,已建立的连接不受影响
验证要求用新会话实际登录验证后再断开旧会话

基线项与说明

配置项建议值说明
PermitRootLoginprohibit-password禁止 root 用口令方式直接登录
PermitEmptyPasswordsno禁止空口令账户登录
PasswordAuthenticationno(已部署密钥时)先确认密钥可用再关闭
MaxAuthTries3 至 6限制单连接的认证尝试次数
LoginGraceTime30 至 60缩短未完成认证连接的占用时间
MaxSessions4限制单连接的多路会话数
AllowTcpForwardingno 或按需关闭不必要的转发,减少跳板滥用
X11Forwardingno服务器一般不需要图形转发
ClientAliveInterval300及时清理僵死会话
LogLevelVERBOSE登录审计需要足够信息

基线项参考

基线项参考
PermitRootLogin prohibit-password
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding no
AllowTcpForwarding no          # 按需放开,跳板机要单独评估
MaxSessions 4
ClientAliveInterval 300
ClientAliveCountMax 2

配置校验与生效

配置校验与生效
sshd -t                     # 语法校验,必须先过这一步
sshd -T | grep -E 'permitrootlogin|passwordauthentication|maxauthtries|permitemptypasswords'
# 建议写成 sshd_config.d/99-baseline.conf,避免直接改主配置文件
sudo systemctl reload sshd  # 重载生效,已建立的连接不受影响

典型使用场景

  • 新服务器上线时的主机基线加固
  • 季度主机基线巡检与整改验收
  • 等保或内审整改项的自证材料
  • 接管老系统时的配置摸底
  • 跳板机与堡垒机的前置加固
  • 发布后确认加固项没有被镜像模板覆盖
修改 sshd 前保留一个已登录会话,配置出错时可回滚,避免把所有人挡在系统之外。
sshd -T 的输出才是最终生效值,但结果会受 Include 与 Match 段影响。改完务必用新会话实际登录验证,再断开旧会话。

易错点

  • 改完不校验直接重载:语法错误会导致 sshd 重启失败,影响所有远程维护通道
  • 只改主配置文件,被 sshd_config.d 下的 Include 覆盖,实际生效值不是预期
  • 关闭口令认证前未验证密钥可用,把自己锁在系统外
  • Match 段针对个别来源放宽了限制,整体基线看着合规但例外没有登记
  • 镜像模板或配置管理在下次发布时把加固项覆盖回去

数据来源与参考

  • OpenSSH 官方手册(sshd_config 5)
  • CIS Benchmark(SSH 基线参考)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌