我曾多次遇到无法记住给定系统的 IP 地址但当时能够使用主机名进行连接的情况。例如,刚才我想在路由器上设置端口转发,但记不住目标系统的 IP。
我想知道是否可以将系统的 IP 地址添加到 SSH 连接上显示的欢迎消息中。
为了防止该术语产生歧义,我尝试修改的默认欢迎消息是“
Linux [hostname] 2.6.35-32-generic #64-Ubuntu SMP Tue Jan 3 00:47:07 UTC 2012 x86_64 GNU/Linux
Ubuntu 10.10
Welcome to Ubuntu!
* Documentation: https://help.ubuntu.com/
我想在其中添加我刚刚登录的系统的 IP 地址。有什么建议吗?除了换一台内存更大的新型号外?
答案1
您提到的消息是“motd”,即“每日消息”。它包含在 中/etc/motd
。
这是由 update-motd 生成的,其文档在这里:https://wiki.ubuntu.com/UpdateMotd#Design
请参阅此相关问题:我如何编辑 ssh motd?
要直接回答您的问题,您可以添加一个名为的文件,/etc/update-motd.d/50-ip-address
其内容如下:
#!/bin/bash
ifconfig |grep "inet addr"
这会非常简单地将系统上所有配置的互联网地址添加到 motd 文件中。
motd 会在“每次登录时”更新(按照man update-motd
)。您可以使用数字作为脚本名称的第一部分来决定 IP 地址出现的顺序。
由于其中的文件/etc/update-motd.d
只是 shell 脚本,因此您可以根据需要编写简单或复杂的内容。
答案2
这可能超出了您的需要,但该landscape-common
软件包会自动将系统信息(包括 IP 地址)添加到 MOTD。
Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-28-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Tue Jul 12 10:21:51 MDT 2016
System load: 0.09 Users logged in: 1
Usage of /: 12.3% of 225.17GB IP address for enp7s0: 192.168.X.XXX
Memory usage: 45% IP address for wlp9s1: 192.168.X.XXX
Swap usage: 0% IP address for docker0: 172.17.0.1
Processes: 397
Graph this data and manage this system at:
https://landscape.canonical.com/
0 packages can be updated.
0 updates are security updates.
Last login: Tue Jul 12 10:03:16 2016 from 192.168.X.XXX
/usr/share/landscape/landscape-sysinfo.wrapper
具体来说,它在目录中添加了一个符号链接/etc/update-motd.d/
。
答案3
如果您想设置自定义消息,请在update-motd.d
文件夹中创建一个文件,chmod
如下所示
sudo vi /etc/update-motd.d/01-custom
将你的自定义消息与 ipconfig 命令一起添加到此处
#!/bin/sh
ifconfig |grep "inet addr"
或者在现代 Linux 系统中 ipconfig 已被弃用,因此请使用以下命令:
#!/bin/sh
ip a | grep "inet"
进而:
sudo chmod +x /etc/update-motd.d/01-custom
注销并登录以查看更改后的 MOTD 消息。