로그인 성공 후 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

관련 정보