SSH 구성에서 다양한 포트를 전달하는 방법은 무엇입니까?

SSH 구성에서 다양한 포트를 전달하는 방법은 무엇입니까?

다음을 통해 SSH 구성 파일에서 여러 포트를 전달할 수 있다는 것을 알고 있습니다.

Host name
    HostName yam.myHost.edu
    User myUserName
    LocalForward 5901 127.0.0.1:5901
    LocalForward 5902 127.0.0.1:5902
    [...]
    LocalForward 5910 127.0.0.1:5910

포트에 추가 회선을 추가하지 않고 다양한 포트를 전달하는 더 쉬운 방법이 있습니까? 그것은 마치 LocalForward 5901-5910 127.0.0.1:5901-5910?

답변1

나는 일반적으로 다음과 같이 구성 없이 명령줄에서 대화형으로 이 작업을 수행합니다.

ssh yam.myHost.edu $(for i in `seq 5901 5920` ;do echo -L $i:localhost:$i ;done)

구성 파일 줄을 생성하고 이를 구성 파일에 복사/붙여넣을 수도 있습니다.

for i in `seq 5901 5920` ;do echo "LocalForward $i localhost:$i" ;done
LocalForward 5901 localhost:5901
LocalForward 5902 localhost:5902
LocalForward 5903 localhost:5903
[...]

답변2

짧은 대답은 '아니요'입니다.

SSH는 포트 전달에 대한 "범위"를 지원하지 않습니다. 1개의 포트만 전달하고 양쪽 끝의 프록시가 라우터 역할을 하여 올바른 로컬 포트를 선택하는 보다 복잡한 설정을 통해 달성할 수 있지만 이는 필요한 것과는 거리가 멀다고 생각합니다.

가장 편리한 방법은 구성에 여러 개의 LocalForward 줄을 제공하는 것입니다(작은 스크립트를 사용하여 동적으로 생성할 수 있음). 또한 SSH 명령은 여러 포트에 대해 여러 -L 매개변수를 허용하므로 다음이 유효합니다.

ssh user@host -L 8000:localhost:8000 -L 8001:localhost:8001

당신이 할 수 있는 일은 필요한 모든 포트에 대해 1개의 SSH 연결을 수행하는 별칭을 설정하는 것입니다.

관련 정보