公众号旧文
SSH 登录时看到的欢迎信息是从哪儿来的?
当你通过 SSH 登录一台 Linux 服务器时,通常会看到这样的内容:
Welcome
to
Debian
GNU
/
Linux
12
*
Documentation
:
https
:
//www.debian.org/doc/
很多人会好奇:这些欢迎信息是从哪儿来的?
在 Linux 系统中,登录时的信息主要来自几个不同的文件和机制。
一、/etc/motd
MOTD 是 Message Of The Day(每日消息) 的缩写。
当用户成功登录系统后,Linux 会显示这个文件中的内容。
查看:
cat
/etc/motd
修改:
nano /etc/motd
例如你可以写:
Welcome to
this
Server
Owner: PZBK
Do not run dangerous commands.
保存后,下次通过 SSH 登录服务器,就会看到这段文字。
二、/etc/issue
/etc/issue 用于 本地终端(TTY)登录前显示的信息。
查看:
cat
/etc/issue
例如系统默认可能是:
Debian
GNU/Linux
12
\n \l
其中有一些特殊符号:
| 符号 | 含义 |
|---|---|
\\n |
系统名称 |
\\l |
终端名称 |
这些变量会在显示时被替换成真实内容。
三、/etc/issue.net
如果是 SSH 登录,在输入用户名之前看到的提示信息通常来自:
/etc/issue.net
查看:
cat
/etc/issue.net
是否显示这个文件,还取决于 SSH 配置:
cat
/etc/ssh/sshd_config
如果里面有:
Banner /etc/issue.net
那么 SSH 在登录前就会显示这个文件的内容。
很多服务器会在这里写:
Unauthorized access prohibited
All
actions will be logged
作为安全提示。
四、/etc/update-motd.d/
在很多发行版中,欢迎信息并不完全是固定文本,而是 动态生成的。
相关脚本放在:
/etc/update-motd.d/
查看:
ls
/etc/update-motd.d/
可能会看到类似:
10-
uname
50-motd-news
80-livepatch
这些脚本会生成一些动态信息,比如:
- 系统版本
- 可用更新
- 系统负载
- 官方提示信息
这些脚本运行后,会生成一个文件:
/run/motd.dynamic
系统登录时显示的内容,实际上往往来自这个文件。
五、为什么修改 /etc/motd 有时没有效果
有时会发现:明明修改了 /etc/motd,
但重新登录后显示的内容并没有变化。
原因通常是系统使用了 动态 MOTD 机制,
显示的是:
/run/motd.dynamic
而不是 /etc/motd 本身。
六、关闭一些登录提示
有些服务器登录时会出现很多额外提示,例如更新通知或新闻。
如果不需要,可以关闭对应脚本,例如:
chmod
-x /etc/update-motd.d/50-motd-news
这样系统登录时就不会再显示相关信息。
七、自定义服务器欢迎信息
很多运维人员会自定义服务器登录信息,例如:
==============================
Server: LAX-VPS
OS: Debian 12
Owner: PangziBaike
==============================
最简单的方法是直接修改:
/etc/motd
如果希望显示动态信息(例如磁盘空间或内存使用情况),可以创建一个脚本,例如:
/etc/update-motd.d/99-custom
内容示例:
#!/bin/bash
echo
"=============================="
echo
" Server: LAX-VPS"
echo
" OS: Debian 12"
echo
"=============================="
echo
""
echo
"Disk:"
df
-h /
echo
""
echo
"Memory:"
free -h
然后赋予执行权限:
chmod
+x /etc/update-motd.d/99-custom
这样每次登录服务器时,就会自动显示当前的系统状态。
通过理解这些文件和机制,你就可以完全掌控 Linux 登录时显示的欢迎信息,无论是做简单提示,还是显示服务器运行状态,都可以自由定制。