nologin 쉘을 사용하는 사용자가 서버에서 SSH 연결을 닫는 것을 방지하는 방법은 무엇입니까?

nologin 쉘을 사용하는 사용자가 서버에서 SSH 연결을 닫는 것을 방지하는 방법은 무엇입니까?

기본 정보: 서버 운영 체제: CentOS 6.3 클라이언트 도구: PuTTY

PuTTY를 사용하여 SSH를 통해 서버에 연결합니다. /sbin/nologin 쉘을 사용하여 계정을 추가했습니다. 계정에 로그인하면(종료할 때 창을 닫으려면 "사용 안 함"을 선택) 콘솔에 "이 계정은 현재 사용할 수 없습니다"라는 메시지가 표시되고 PuTTY에서는 "원격 호스트에 의해 연결이 닫혔습니다"라는 메시지가 표시됩니다.

하지만 이 연결을 통해 계속 터널링할 수 있도록 연결을 닫지 않고 서버에서 "계정을 사용할 수 없음"이라고만 표시되기를 원합니다.

또한 일반 /bin/bash 사용자의 경우 종료를 입력하면 때때로 연결이 닫히고 때로는 서버에 "LOGOUT"이라고 표시되지만 여전히 연결되어 있는 것으로 나타났습니다(여전히 터널을 통해 터널링할 수 있습니다).

그렇다면 nologin 셸 계정의 연결이 닫히지 않았는지 어떻게 확인할 수 있나요?

답변1

셸의 계정 설정을 사용하여 /usr/sbin/nologin포트 전달을 설정할 수 있습니다. 그러나 쉘 명령을 실행하려고 하면 연결이 강제로 종료됩니다. 수정 사항은 쉘 명령을 실행하지 않는 것입니다. OpenSSH(내장되지 않은 거의 모든 Unix/Linux 시스템의 SSH 구현)를 사용하여 -NSSH 클라이언트에 옵션을 전달합니다.

ssh -N -L 1234:somehost:5678 [email protected]

PuTTY를 사용하여 확인하세요."쉘이나 명령을 전혀 시작하지 마십시오"연결 > SSH 탭에서.

답변2

남자 SSH에서 :

The session terminates when the command or shell on the remote machine exits and all X11 and TCP connections have been closed.

내 생각에 가장 쉬운 방법(유일한 방법은 아니지만)은 /bin/cat을 로깅 쉘로 사용하는 것입니다. 더러운 해커.

관련 정보