ssh登录显示自定义信息
ssh登录显示自定义信息
属于是灵光一闪了,想让ssh登录时显示一些自定义的内容
登录时打印的信息有三个文件可以控制:
- /etc/ssh/sshd_config (登录前)
- /etc/motd (登录后)
- ~/.bashrc (环境变量)
/etc/ssh/sshd_config
banner指的是横幅,在这里表示服务器在接收到ssh连接请求时向用户显示的信息,也就是在登录前就会对信息进行打印
首先需要开启ssh里的banner支持
1
| sudo vim /etc/ssh/sshd_config
|
大概107行会找到这么一段内容
取消Banner前的注释,并把None改为一个路径,这里以改为/etc/mybanner
为例
之后新建对应的mybanner文件,写入对应的信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $ cat /etc/mybanner
--------------------------------------- ---------------------------------------
社会主义核心价值观:
富强、民主、文明、和谐
自由、平等、公正、法治
爱国、敬业、诚信、友善
--------------------------------------- ---------------------------------------
|
保存后重启ssh服务
1
| sudo systemctl restart sshd
|
这时通过ssh连接就能看到对应的信息了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| # kahuuchino @ ATRI in ~ [19:53:49] $ ssh kahuuchino@ip_address
--------------------------------------- ---------------------------------------
社会主义核心价值观:
富强、民主、文明、和谐
自由、平等、公正、法治
爱国、敬业、诚信、友善
--------------------------------------- ---------------------------------------
kahuuchino@ip_address's password:
|
/etc/motd
这个文件的信息会在确认密码正确后打印
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| $ cat /etc/motd
--------------------------------------- ---------------------------------------
八荣八耻要牢记
以热爱祖国为荣,以危害祖国为耻。
以服务人民为荣,以背离人民为耻。
以崇尚科学为荣,以愚昧无知为耻。
以辛勤劳动为荣,以好逸恶劳为耻。
以团结互助为荣,以损人利己为耻。
以诚实守信为荣,以见利忘义为耻。
以遵纪守法为荣,以违法乱纪为耻。
以艰苦奋斗为荣,以骄奢淫逸为耻。
--------------------------------------- ---------------------------------------
|
显示效果如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| kahuuchino@ip_address's password:
--------------------------------------- ---------------------------------------
八荣八耻要牢记
以热爱祖国为荣,以危害祖国为耻。
以服务人民为荣,以背离人民为耻。
以崇尚科学为荣,以愚昧无知为耻。
以辛勤劳动为荣,以好逸恶劳为耻。
以团结互助为荣,以损人利己为耻。
以诚实守信为荣,以见利忘义为耻。
以遵纪守法为荣,以违法乱纪为耻。
以艰苦奋斗为荣,以骄奢淫逸为耻。
--------------------------------------- ---------------------------------------
Last login: Mon May 15 17:18:37 2023 from ip_address
# kahuuchino @ ATRI in ~ [19:53:49]
|
~/.bashrc
这个文件其实算是一个命令脚本,每次无论以什么方式登录都会把这个文件里的命令全部执行一遍,因此环境变量可以以export
命令的形式写在这个文件里
我的目标是登录时打印电脑信息,因此需要执行一次neofetch
这个小工具来打印,因此在~/.bashrc
内增加以下内容
1 2 3
| if [[ -n $SSH_CONNECTION ]] ; then echo "\n" && neofetch fi
|
通过$SSH_CONNECTION
判断当前执行来源为ssh登录还是用户手动执行source ~/.bashrc
,之后再执行neofetch
,echo "\n"
是我为了美观多打印的空行,执行效果如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Last login: Mon May 15 17:18:37 2023 from ip_address
-` kahuuchino@ATRI .o+` --------------- `ooo/ OS: Arch Linux x86_64 `+oooo: Host: MS-7971 1.0 `+oooooo: Kernel: 6.3.1-arch2-1 -+oooooo+: Uptime: 21 hours `/:-:++oooo+: Packages: 1287 (pacman) `/++++/+++++++: Shell: zsh 5.9 `/++++++++++++++: Resolution: 2560x1440 `/+++ooooooooooooo/` Terminal: /dev/pts/2 ./ooosssso++osssssso+` CPU: Genuine Intel 0000 (8) @ 3.500GHz .oossssso-````/ossssss+` GPU: Intel HD Graphics 630 -osssssso. :ssssssso. Memory: 11229MiB / 15905MiB :osssssss/ osssso+++. /ossssssss/ +ssssooo/- `/ossssso+/:- -:/+osssso+- `+sso+:-` `.-/+oso: `++:. `-/+/ .` `/
|
完整效果展示