누군가 SSH를 통해 로그인을 시도하는 등 다른 인증 시도를 확인/거부하도록 로컬 사용자(GUI를 통해 로그인)에게 요구하는 방법이 있는지 궁금합니다.
시나리오는 다음과 같습니다. SSH 키를 사용자 컴퓨터에 남겨두고 디버깅하거나 문제가 발생하면 도움을 주고 싶을 수도 있지만 동시에 나나 다른 사람이 내 것을 훔치지 않도록 제어를 유지하기를 원합니다. SSH 키를 사용하면 최소한 사용자의 확인 없이도 로그인할 수 있습니다(사용자는 내가 로그인할 것이라고 미리 말해주기를 기대하므로 그렇게 하지 않으면 연결을 거부합니다).
가능합니까? 머신은 기본 Unity 데스크탑 환경에서 Ubuntu 16.10을 실행하고 있습니다.
답변1
예. 이는 /etc/pam.d/sshd
Zenity 등을 사용하는 사용자에게 메시지를 표시 하는 맞춤형 PAM 모듈을 사용하여 가능해야 합니다 . 하지만 이 QA는 전체 스크립트를 작성해 주는 형식이 아닙니다.
답변2
이것은 어리석은 요청이지만 예를 들어 파일이 존재하는지 확인하는 쉘 래퍼를 가리키는 명령을 사용할 수 있으며, 파일이 서버에 존재하는 경우 세션은 "exit"로 끝나지 않고 쉘이 SSH_ORIGINAL_COMMAND를 지정하도록 허용합니다.
하지만 어쨌든... UID는 같지만 사용자 이름이 다른 두 개의 사용자 계정을 만드는 것이 가능합니다. 따라서 실제 사용자의 경우 모든 것이 평소대로 작동하고 지원 담당자의 경우 원격 시스템의 기본 셸로 /sbin/nologin을 갖게 됩니다. 지원팀에 로그인이 필요한 경우 원격 컴퓨터 관리자는 해당 쉘을 예를 들어로 변경합니다. bash와 세션이 작동합니다. 그런 다음 관리자는 지지자를 쫓아내고 그의 쉘을 다시 /sbin/nologin으로 변경할 수 있습니다.