다양한 SSH 연결에 다양한 SSH 배너를 사용하는 방법은 무엇입니까?

다양한 SSH 연결에 다양한 SSH 배너를 사용하는 방법은 무엇입니까?

/etc/ssh/sshd_config 다음 범위 내에서 지정하십시오 .Banner /etc/issue

SSH 배너는 SSH 로그인 값을 입력해야만 표시되기 때문에,

SSH 로그인을 위해 입력한 사용자 이름을 기반으로 다른(고유) 배너를 표시할 수 있습니까?

아니면 연결의 IP 주소를 기반으로 특정 배너를 사용할 수 있습니까?

RHEL/CentOS 7.8에서 사용되는 SSH 버전에서 이것이 가능합니까?

답변1

글쎄, SSH를 통해 연결된 각 사용자 또는 IP 주소에 대해 다른 배너를 표시하려는 경우 다음을 선택할 수 있습니다.이 둘Match다음과 같이 명령을 사용하십시오 .

  1. 사용자 이름에 따라 다른 배너:

    # put in Match section like
    Match User sshUser
        Banner /path/to/specific_banner
    
  2. IP 주소에 따른 다양한 배너:

    # put in Match section like
    Match Address 10.20.30.0/24
        Banner /path/to/specific_banner
    

따라서 가능합니다. sshd변경 사항을 적용하려면 다시 로드하면 됩니다. sshd 버전에 다시 로드 명령이 없으면(최악의 경우) 다시 시작해야 합니다.

답변2

(적어도 내 관점에서 볼 때) 또 다른 가능성은 실제로 세션에 들어가기 전에 일부 배너를 인쇄 ssh하는 ing에 대한 일부 기능을 정의하는 것 입니다. 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"
}

통화 예:

ssh root 192.168.0.1

출력 예:

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
 -----------------------------------------------------

관련 정보