ログイン成功後にSSHサーバーがメッセージを表示する

ログイン成功後にSSHサーバーがメッセージを表示する

Debian ssh サーバーについて質問があります。ログイン成功後にメッセージを表示したいのですが、motd を使用しましたが、ローカルホストでは表示されます。ローカル マシンに表示させたくありません。特定のユーザーが ssh に正常にログインした後にのみ表示したいのです。

答え1

特定のユーザーが SSH に正常にログインした後にメッセージを表示するには、次のいくつかの手順を実行します。

ユーザーがログインした後に表示するメッセージを含むファイルを作成します。たとえば、「ssh_message」というファイルを作成し、そのファイルに必要なメッセージを追加できます。

SSH 構成ファイル (/etc/ssh/sshd_config) を変更し、ファイルの末尾に次の行を追加します。

ForceCommand echo "YOUR MESSAGE HERE"

ファイルを保存し、次のコマンドを使用して SSH デーモンを再起動します。

sudo systemctl restart sshd

これらの手順を実行すると、特定のユーザーが SSH にログインした後にメッセージが表示されます。このアプローチでは、「Message of the Day」(motd) 機能をバイパスし、メッセージをユーザーに直接表示します。

SSH 構成ファイルを不適切に変更すると、セキュリティ上の問題が発生する可能性があることに注意してください。そのため、まずは非運用環境で変更をテストし、変更が組織のセキュリティ ポリシーに準拠していることを確認することをお勧めします。

答え2

sshd 構成の変更は、必ずしも 1 人のユーザーだけではなく、すべてのユーザーに適用される可能性があると思います。

別の方法としては、SSHLog を使用する方法があります。エージェント

1 人以上のユーザー (例: jdoe) のログイン成功を監視し、そのユーザーの TTY へのログイン成功時にコマンド「write」を実行するように設定できます。たとえば、私がテストして、必要なことを実行する設定は次のとおりです。

events:
  - event: jdoe_logs_in
    triggers: [ 'connection_established']
    filters:
      username: 'jdoe' 
      require_tty: True
    actions:
      - action: message_about_lunch_money
        plugin: run_command_action
        command: bash 
        args: ["-c", "echo 'Hello {{username}} do not forget that $4.75 you owe me for lunch!' | write {{username}} /dev/pts/{{tty_id}}"]

ログインすると、MOTD は次のようになります。

Welcome to Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-67-generic x86_64)
...
40 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm

*** System restart required ***

Last login: Tue Apr 18 11:41:16 2023 from 127.0.0.1

Message from root@server on pts/20 at 11:48 ...
Hello jdoe do not forget that $4.75 you owe me for lunch!
EOF

関連情報