서버에 새 SSH 연결이 설정되면 일부 명령(예: bash 스크립트 실행)이 실행되도록 OpenSSH 서버를 사용자 정의해야 합니다. 이 명령은 SSH 연결을 위해 서버를 "준비"해야 합니다.
따라서 클라이언트의 관점에서 보면 이는 일반적인 SSH 연결일 뿐입니다.ssh [email protected]
그러나 서버 측에서는 명령을 실행한 다음 SSH 세션이 시작되도록 허용합니다.
OpenSSH를 통해 이를 달성할 수 있습니까? 아니면 자체 SSH 서버를 작성해야 합니까?
SSH 연결이 종료되어도 동일한 작업을 수행할 수 있습니까?
답변1
어쩌면 내가 의미하는 바를 오해했을 수도 있지만 사용자 연결이 아닌 서버 컨텍스트에서 명령을 실행하려면 ForceCommand
아래 설명된 대로 소켓 활성화 SSHD 설치를 사용할 수 있습니다.
http://0pointer.de/blog/projects/socket-activated-containers.html
sshd
시작하기 전에 스크립트를 실행 하려면 여러 ExecStart
문( sshd
마지막 문)을 사용하세요.
답변2
예, sshd_config에서 ForceCommand를 사용하세요. sshd_config 매뉴얼 페이지에 좋은 설명이 있습니다.
https://linux.die.net/man/5/sshd_config
연결을 계속하려면 SSH_ORIGINAL_COMMAND
래퍼 스크립트에서 원래 명령(env. 변수에 저장됨)을 실행하기만 하면 됩니다.