사용자가 포트 전달을 허용하지만 SSH를 통한 다른 작업은 허용하지 않습니다.

사용자가 포트 전달을 허용하지만 SSH를 통한 다른 작업은 허용하지 않습니다.

Linux 사용자를 생성하고 기본 쉘을 /bin/true.

어떻게 해야 하나요?

답변1

사용자의 셸을 로 설정하면 /bin/true사용자가 서버에서 어떤 작업도 수행할 수 없습니다. 문제는 사용자가 "normal"을 통해 서버에 연결하는 경우 ssh비밀번호를 입력한 후 즉시 연결이 끊어져 포트 포워딩도 사용할 수 없다는 것입니다.

사용자는 다음과 같이 -N매개변수를 사용해야 합니다 ssh.

ssh -N -L 8000:localhost:80 youruser@yourserver

그러면 사용자가 연결하는 컴퓨터의 포트 8000에서 서버의 포트 80으로 포트 전달이 생성됩니다. 이 -N매개변수는 ssh연결이 설정되었지만아니요사용자의 기본 셸( /bin/true귀하의 경우)을 실행합니다. 따라서 사용자는 연결된 상태를 유지하며 Ctrl-C에 의해 중단될 때까지 연결이 "중단"됩니다. 이 시간 동안 포트가 전달됩니다.

sshbefore를 추가하면 "hanging"(터미널이 차단되지 않도록) 전에 백그라운드로 이동할 수도 있습니다 . 이 경우 나중에 포트포워딩을 종료하려면 프로세스 목록에서 해당 프로세스를 찾아서 종료해야 합니다.-f-Nssh

관련 정보