最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
服务器 SSH 登录欢迎语 MOTD 如何配
时间:2026-08-08 13:16:55 编辑:袖梨 来源:一聚教程网
SSH登录后欢迎语(MOTD)需区分静态与动态机制:静态须设PrintMotd yes并重启sshd;动态推荐用/etc/update-motd.d/脚本(Ubuntu/Debian)或PAM pam_motd.so(RHEL/CentOS),且需检查sshd重启、PAM配置及shell初始化文件是否清屏。
SSH 登录后显示的欢迎语(MOTD)不是改完 /etc/motd 就自动生效的——现代 Linux 发行版大多默认禁用它,或改由 PAM 动态生成。关键在于区分“登录前”和“登录后”,以及静态与动态两种机制。
登录前显示:用 Banner(法律提示/安全声明)
这是用户输入用户名密码前看到的内容,适合放合规提示、授权声明等:
- 编辑
/etc/ssh/sshd_config,取消注释或添加这一行:Banner /etc/ssh/banner.txt - 创建 banner 文件:
sudo tee /etc/ssh/banner.txt <<'EOF'
本系统仅供授权人员访问
Unauthorized access is prohibited by law
EOF
- 重启服务:
sudo systemctl restart sshd
注意:Banner 不支持变量(如 n、$(hostname)),纯文本;且对所有连接者可见,包括失败尝试。
登录后显示:启用 MOTD(欢迎信息+系统状态)
这是用户成功认证、shell 启动前输出的内容。分两种主流方式:
-
静态方式(简单固定文字):
编辑
/etc/motd,例如:echo "Welcome to web-prod-01" | sudo tee /etc/motd但必须在
/etc/ssh/sshd_config中设PrintMotd yes,再sudo systemctl restart sshd -
动态方式(推荐,含实时数据):
Ubuntu/Debian 系默认走
/etc/update-motd.d/;RHEL/CentOS 需手动配置 PAM。例如新建脚本:
sudo tee /etc/update-motd.d/10-header <<'EOF'
#!/bin/sh
echo "=== $(hostname -s) | $(date +%F) ==="
echo "Load: $(uptime -p | sed 's/up //')"
EOF
然后加执行权限:
sudo chmod +x /etc/update-motd.d/10-header
常见不生效原因和检查点
改了文件却没看到效果?重点查这三项:
- SSH 服务是否真正重启:
sudo systemctl restart sshd(reload 不够) - PAM 是否启用 motd:
grep pam_motd /etc/pam.d/sshd,应有类似session optional pam_motd.so的行 - 用户 shell 初始化文件是否清屏:
~/.bashrc或/etc/profile里有没有clear或reset—— 它们会把 MOTD 冲掉
进阶:让欢迎语带颜色和格式
MOTD 支持 ANSI 转义序列(如 e[1;32m 表示粗绿),但需确保终端支持:
- 脚本中用
printf替代echo更可靠,例如:printf "e[1;36mHOST:e[0m $(hostname)n" - 避免使用
figlet或toilet类工具直接写入 MOTD 脚本——它们依赖终端尺寸,远程 SSH 可能渲染错乱 - 若要美观排版,建议用固定宽度字符串+空格对齐,比依赖外部命令更稳定
相关文章
- 一部「黑」奥特曼的电影,被OpenAI金主连夜雪藏 08-12
- 迅捷 FW351R 无线路由器上网时间控制 08-12
- jm天堂漫画官网入口 08-12
- Moonlit Celestial Palace Gate 08-12
- Memcached gets 命令 08-12
- 迅捷 FW351R 无线路由器网速限制设置 08-12