SSH 로그인 훅?


15

사용자가 ssh를 사용하여 연결할 때마다 스크립트 / 명령을 실행하는 방법이 있습니까? 이 전 세계적으로 구성 할 수 있습니다 (즉, 스크립트를 실행하는 모든 사용자 로그인을)?

나는 Identica 에서이 질문을 보았지만 아직 답이 없으며 어쨌든 알고 싶습니다.

답변:


11

모든 사용자 또는 특정 사용자에게 단일 사용자의 경우 .bashrc파일에 설정 하십시오. 모든 사용자에 대해 pam_exec를 확인하십시오 .

사용자가에서 오는 경우 sshd다음 행을 /etc/pam.d/sshd;에 추가하려고합니다 . 소스에 따라 다른 파일 :

session optional pam_exec.so seteuid  /path/to/my/hook.sh

테스트 목적으로 모듈이로 포함되어 optional있어 실패 할 경우에도 로그인 할 수 있습니다. 확실 작동하는지 만든 후에는 변경할 수 있습니다 optionalrequired. 후크 스크립트가 성공적으로 실행되지 않으면 로그인 할 수 없습니다.

참고 : 로그인 구성을 변경할 때 항상 백업 쉘을 백그라운드에서 열어두고 새 터미널에서 로그인을 테스트하십시오.


고마워, 유망 해 보인다. 좀 더 정교하게 할 수 있습니까? 나는 이것에 익숙하지 않다.
phunehehe

session include pam_exec.so seteuid /path/to/script파일에 추가해야한다고 가정 합니다 /etc/pam.d/system-remote-login. 그 맞습니까?
phunehehe

어느 system-remote-login하거나 sshd, 사용자가오고 방법에 따라 달라집니다.
글렌 Solsberry

대박! 정보를 포함하도록 답변을 편집하면 도움이 될 것입니다 (아는 사람은 정보를 검색).
phunehehe

인터넷 검색 사용자에게이 줄 auth optional pam_exec.so /path/to/my/hook.sh을 입력하면 /etc/pam.d/common-authPAM이 발생하는 모든 인증 이벤트를 사용자에게 알릴 수 있습니다. 이 프로그램은 또한 푸시 알림을 보낼 수 있습니다 : github.com/benjojo/PushAlotAuth
Nick Sweeting

6

로컬이 아닌 ssh를 사용하는 사용자에게만 영향을 미치는 다른 방법이 있습니다 (비상 상황에서는 더 좋을 수 있음)

아래 ssh 매뉴얼 페이지의 스 니펫을 참조하십시오.

이 경우 사용자는 일반적으로 파일을 직접 수정할 수 있습니다 (.bashrc와 유사)

 ~/.ssh/rc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.

이것은 전역 적이며 일반 사용자가 수정할 수 없습니다

 /etc/sshrc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.

2
그러나 / etc / sshrc는 사용자가 ~ / .ssh / rc를 소유하지 않은 경우에만 실행되므로이 ​​사용자는 무시할 수 있습니다
isevcik

2
@isevcik, 즉 PermitUserRC가 "yes"로 설정된 경우에만 해당됩니다 /etc/ssh/sshd_config( man sshd_config자세한 내용 참조)
jeremysprofile
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.