さまざまな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

(少なくとも私の観点から見る)もう一つの可能​​性は、実際にセッションに入る前にいくつかのバナーを印刷する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"
}

通貨例:

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

関連情報