다음 홉을 통한 SSH, 사용자의 다음 홉에 셸이 없습니다.

다음 홉을 통한 SSH, 사용자의 다음 홉에 셸이 없습니다.

A, B, C 머신이 있습니다.

사용자는 머신 A에 있고 머신 B를 통해 머신 C로 SSH를 통해 연결하려고 합니다. 사용자는 시스템 A와 C에 쉘을 가지고 있지만 시스템 B에는 /usr/sbin/nologin을 가지고 있습니다. B를 통해 머신 C에 SSH를 통해 연결할 수 있습니까?

다음 명령의 결과는 다음과 같습니다.

ssh -t B ssh C
This account is currently not available.

B에 쉘이 있는 사용자를 사용하여 머신 C에 ssh를 실행하면 명령이 작동합니다.

답변1

읽고 나서협회patrix의 의견을 보면 ssh인 경우에도 이것이 가능하다는 것을 알 수 있습니다.시도하지 마세요쉘 프로그램을 실행합니다. 최근의 특징은SSH를 열어7.3이 호출됩니다 ProxyJump(오랜 시간 동안 내장되고 최적화된(파이프 사용) 단축키임 ProxyCommand). 이 기능은 터널 수준에서만 작동하며 중간 호스트에서 셸을 실행하지 않습니다.

따라서 B에서 사용자 계정 로그인이 쉘에 의해 비활성화되었지만 nologin인증은 계속 작동하고 전달을 차단하는 SSH 구성이 없는 경우(예: or AllowTcpForwarding로만 설정되지 않았지만 적어도 or 로 설정됨 ) 작업 명령은 다음과 같습니다. 간단하다:remotenolocalyes

ssh -J B C

이전 SSH 버전에서는 구성 없이 다음을 수행할 수 있습니다.

ssh -f -N -L 2222:C:22 B
ssh -p 2222 localhost

핵심 사항은 다음과 같습니다.

-N 원격 명령을 실행하지 않습니다. 이는
포트 전달에 유용합니다.

관련 정보