
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