ssh 服务器登录成功后显示信息

ssh 服务器登录成功后显示信息

我有一个 debian ssh 服务器问题,我想在成功登录后显示一条消息,我已经使用了 motd,但 localhost 会显示它。我不想让本地机器显示它。我只想在特定用户成功登录 ssh 后显示它。

答案1

要在特定用户成功登录 SSH 后显示消息,您可以按照以下几个步骤操作:

创建一个文件,其中包含您希望在用户登录后显示的消息。例如,您可以创建一个名为“ssh_message”的文件,并在文件中添加您想要的消息。

修改SSH配置文件(/etc/ssh/sshd_config),在文件底部添加以下行:

ForceCommand echo "YOUR MESSAGE HERE"

保存文件并使用以下命令重新启动 SSH 守护程序:

sudo systemctl restart sshd

完成这些步骤后,特定用户登录 SSH 后将显示该消息。此方法将绕过“每日消息”(motd) 功能并直接向用户显示您的消息。

值得注意的是,如果操作不当,修改 SSH 配置文件可能会导致安全问题。因此,我建议首先在非生产环境中测试更改,并确保更改符合组织的安全策略。

答案2

我认为修改 sshd 配置可能适用于所有用户,而不一定只适用于一个用户。

另一种方法是使用 SSHLog:https://github.com/sshlog/agent/

您可以将其配置为监视一个或多个用户(例如 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

相关内容