关于/etc/ssh/sshd_config 在指定范围内Banner /etc/issue
由于在输入 SSH 登录值后才会显示 SSH 横幅,
是否可以根据为 SSH 登录输入的用户名显示不同的(唯一的)横幅?
或者是否可以根据连接的 IP 地址使用特定的横幅?
在 RHEL/CentOS 7.8 中使用的 SSH 版本是否有可能以某种方式实现?
αғs*_*нιη 18
好吧,如果您的意思是为每个用户或通过 ssh 连接的 IP 地址显示不同的横幅,那么您可以使用以下命令选择这两者Match;
基于用户名的不同横幅:
# put in Match section like
Match User sshUser
Banner /path/to/specific_banner
Run Code Online (Sandbox Code Playgroud)
基于 IP 地址的不同横幅:
# put in Match section like
Match Address 10.20.30.0/24
Banner /path/to/specific_banner
Run Code Online (Sandbox Code Playgroud)
所以,这是可能的;您只需要重新加载sshd即可使更改生效;如果您的 sshd 版本没有重新加载命令(在最坏的情况下),您将需要重新启动它。
另一种可能性是(至少从我的角度来看)为sshing 定义一些函数,该函数将在实际进入会话之前打印一些横幅ssh。如果你需要的话,就发挥创意吧。
示例函数:
unalias ssh 2> /dev/null
ssh ()
{
if ! { [ $# -eq 2 ] && [ -n "$1" ] && [ -n "$2" ]; } then
# shellcheck disable=SC2016
printf >&2 '%s\n' 'Expecting $1 = username, $2 = computer'
return 1
fi
case "$1" in
(user1) banner='This will be great SSH!' ;;
(user2) banner='Enjoy your SSH session!' ;;
(*) banner='Some generic banner ...' ;;
esac
printf '%s\n' \
"Entering SSH session as user $1 onto computer $2 ..." \
"$banner"
command ssh "$1"@"$2"
}
Run Code Online (Sandbox Code Playgroud)
调用示例:
ssh root 192.168.0.1
Run Code Online (Sandbox Code Playgroud)
输出示例:
Entering SSH session as user root onto computer 192.168.0.1 ...
Some generic banner ...
BusyBox v1.30.1 () built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt 19.07.3, r11063-85e04e9f46
-----------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1418 次 |
| 最近记录: |