SSH Banner 是做什么的
Banner 是 sshd 在完成认证之前向客户端显示的文本,通常用于安全告知与合规提示,例如声明仅授权用户可访问、所有操作会被记录。配置方式是在 /etc/ssh/sshd_config 中指定 Banner 指令指向一个文本文件,重启或重载 sshd 后新的连接即可看到。它与控制台的 /etc/issue、/etc/issue.net 是两套独立配置,不要混用。
基本信息
| 配置文件 | /etc/ssh/sshd_config 中加 Banner 指令 |
|---|---|
| 横幅文件 | 常见路径 /etc/ssh/banner.txt,属主 root、权限 644 |
| 生效方式 | sshd -t 校验语法后 systemctl reload sshd |
| 显示时机 | 认证之前,任何发起连接的客户端都能看到 |
| 适用平台 | 所有 OpenSSH 服务端,含麒麟、UOS、openEuler |
典型使用场景
- 满足等保与合规对「登录告知」的要求,明确提示操作留痕与法律责任
- 在受控环境里给出运维规范提示,例如禁止直接在生产环境执行高风险命令
- 提示正确的登录入口与支持渠道,减少误连到无关主机的情况
- 迁移过渡期告知新平台使用方式,把公告信息推送给所有登录用户
- 排查连接问题时作为诊断点:看不到横幅通常说明连的不是预期的 sshd
- 区分同一主机上不同端口的 sshd 实例,用不同横幅快速辨认用途
配置与验证
配置与验证
# /etc/ssh/sshd_config
Banner /etc/ssh/banner.txt # 指向横幅文本文件
# /etc/ssh/banner.txt 示例:只写告知内容,不含系统版本
Authorized access only. All activity is logged.
chmod 644 /etc/ssh/banner.txt # 权限过宽会被 sshd 拒绝
sshd -t # 校验配置语法
systemctl reload sshd # 重载使配置生效
ssh test@10.0.0.9 # 登录验证横幅是否显示
sshd -T | grep -i banner # 确认最终生效值三类提示文件对比
| 文件 | 作用范围 | 注意点 |
|---|---|---|
| sshd_config Banner | SSH 远程登录 | 认证前显示,内容需简短 |
| /etc/issue | 本机控制台与虚拟终端 | 可能被发行版脚本覆盖 |
| /etc/issue.net | telnet 等网络登录 | 与 SSH Banner 无关 |
| /etc/motd | 登录成功后显示 | 认证后输出,展示公告更合适 |
横幅显示在认证之前,任何能连到端口的人都能读到,因此不要写系统版本、内网地址、主机名规范等可用于踩点的信息,合规告知内容保持简短即可。
改完配置后必须实际登录一次确认,避免横幅文件权限过宽导致 sshd 拒绝启动或 Banner 静默失效;重载前先 sshd -t,并保留一个已登录会话以防配置出错。