소규모 학생 사용자 그룹이 ssh
Jupyter, rstudio 등과 같은 데이터 과학/프로그래밍 리소스에 액세스하기 위해 로컬 전달을 사용하여 서버에 연결할 수 있도록 허용합니다.
나는 최근에 학생들이 실행하는 동안 자신이 어느 호스트에 있는지 추적할 수 없다는 것을 발견했습니다 ssh
. 예를 들어, 학생들은 달리고 ssh -L foo:localhost:foo host1
에서 다른 호스트 에 연결하기 위해 host1
달리게 됩니다 . 물론 이것은 이제 수신 대기 중이기 때문에 다른 모든 사용자에 대한 포트 전달을 중단합니다 .ssh -L foo:localhost:foo hostN
host1
foo
host
foo
학생들이 원격 호스트에서 클라이언트를 실행할 ssh
수 없도록 일시적으로 호스트를 제한했습니다 . 그러나 어느 시점에서는 사용자가 액세스할 필요가 없는 경우도 ssh
완전히 배제할 수는 없습니다 .ssh
사용자가 위험한 명령을 실행하지 못하도록 /etc/ssh/ssh_config
이를 구성하는 방법(클라이언트 측에서)이 있습니까 ? 예 를 ssh
들어, .foo
host1
감사해요
답변1
클라이언트 측을 쉽게 제어할 수는 없지만 에 정의된 대로 서버 측을 제어할 수 있습니다 /etc/ssh/sshd_config
. 모든 전달 옵션을 비활성화하고 서비스를 다시 시작합니다.
DisableForwarding yes
ssh -L
이는 or 를 사용하는 쉬운 방법을 제거 ssh -R
하지만 누군가가 애플리케이션 프록시를 설정하는 것을 막지는 못합니다(예: netcat
or 사용 socat
).