【问题标题】:SSH script banner printing source then executingSSH 脚本横幅打印源然后执行
【发布时间】:2018-11-07 13:30:30
【问题描述】:

所以我为我的 SSH 服务器创建了一个 bash 脚本横幅,非常简单。它位于 profile.d:

/etc/profile.d/ssh_banner.sh

我已将 sshd_config 文件编辑如下:

# no default banner path
Banner /etc/profile.d/ssh_banner.sh

但是,当我登录服务器时,在执行脚本并显示输出之前,它会立即显示脚本的源代码;

adam@adam-ThinkPad-T470s:~$ ssh adam@<IP_ADDRESS> -p 51536

#!/bin/bash

#Colours
red="\033[00;31m"
RED="\033[01;31m"

green="\033[00;32m"
GREEN="\033[01;32m"

brown="\033[00;33m"
YELLOW="\033[01;33m"

blue="\033[00;34m"
BLUE="\033[01;34m"

purple="\033[00;35m"
PURPLE="\033[01;35m"

cyan="\033[00;36m"
CYAN="\033[01;36m"

white="\033[00;37m"
WHITE="\033[01;37m"

NC="\033[00m"

echo -e "${WHITE}******************************************************************************"
echo -e "${WHITE}**                                                                          **"
echo -e "${WHITE}**                    Powered By Raspbian                                   **"
echo -e "${WHITE}**                                                                          **"
echo -e "${YELLOW}******************************************************************************"

CPUMOD=$(cat /proc/cpuinfo | grep -m 1 -w 'model name' | awk -F: '{print $2}')
HOSTNAME=$(uname -n)
KERNEL=$(uname -r)
MEMTOTAL=$(cat /proc/meminfo | grep -m 1 -w 'MemTotal' | awk -F: '{print $2}')
MEMFREE=$(cat /proc/meminfo | grep -m 1 -w 'MemFree' | awk -F: '{print $2}')
SWAPTOTAL=$(cat /proc/meminfo | grep -m 1 -w 'SwapTotal' | awk -F: '{print $2}')
SWAPFREE=$(cat /proc/meminfo | grep -m 1 -w 'SwapFree' | awk -F: '{print $2}')
echo -e "**     ${YELLOW}Unauthorised access to this network is strickly FORBIDDEN            **"
echo -e "**     ${YELLOW}If you havn't been given authorisation ${RED}LOGOUT IMMEDIATELY!${YELLOW}           **"
echo -e "**${YELLOW}                    This logon has been recored                           **"
echo -e "${YELLOW}******************************************************************************"
echo -e ""
echo -e "${WHITE} Welcome ${YELLOW}${USER}${WHITE}"
echo -e ""

echo -e "${WHITE} Date: "`date`
echo -e ""

echo -e "${WHITE} Hostname:   ${HOSTNAME}"
echo -e "${WHITE} CPU Model: ${CPUMOD}"
echo -e ""
echo -e "${WHITE} Total Memory: ${MEMTOTAL}"
echo -e "${WHITE} Free Memory: ${MEMFREE}"
echo -e ""
echo -e "${WHITE} Swap Total:    ${SWAPTOTAL}"
echo -e "${WHITE} Swap Free:    ${SWAPFREE}"
echo -e ""


# Reset Terminal Colour Back to Normal
echo -e "${NC}"
Last login: Wed Nov  7 12:56:47 2018 from <IP_ADDRESS>
******************************************************************************
**                                                                          **
**                    Powered By Raspbian                                   **
**                                                                          **
******************************************************************************
**     Unauthorised access to this network is strickly FORBIDDEN            **
**     If you havn't been given authorisation LOGOUT IMMEDIATELY!           **
**                    This logon has been recored                           **
******************************************************************************

 Welcome adam

 Date: Wed 7 Nov 13:18:42 UTC 2018

 Hostname:   pi
 CPU Model:  ARMv7 Processor rev 4 (v7l)

 Total Memory:          949448 kB
 Free Memory:           781588 kB

 Swap Total:            102396 kB
 Swap Free:             102396 kB


adam@pi:~ $ 

在通知最后一次登录的行之后打印出预期的横幅, 我尝试将 ssh_banner.sh 放在其他目录中,这导致 ssh 只打印源,而没有执行输出。 /etc/profile.d 是 SSH 执行横幅的唯一目录。

我不明白为什么会这样,如果有人可以提供帮助,我将不胜感激。

【问题讨论】:

    标签: linux ssh raspberry-pi config banner


    【解决方案1】:

    sshd 不会执行或获取您的横幅 ssh_banner.sh,如文档所述:

    横幅

    在允许身份验证之前,将指定文件的内容发送给远程用户。如果参数为“none”,则不显示横幅。此选项仅适用于协议版本 2。默认情况下,不显示横幅。

    如果您将横幅ssh_banner.sh 放在/etc/profile.d 下,则横幅是通过正常登录过程获取的,与sshd 无关。

    所以您可以在sshd_config 的Banner 行前面添加评论#,而ssh_banner.sh 在正常登录下仍然来源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-06
      • 2013-12-08
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      • 2016-09-25
      • 1970-01-01
      相关资源
      最近更新 更多