여러 시스템을 통해 SSH 터널 설정(SOCKS용)

여러 시스템을 통해 SSH 터널 설정(SOCKS용)

여러 시스템을 통한 SSH 터널링에 대한 질문을 본 적이 있지만 SOCKS 연결을 터널링하고 싶습니다.

일반적으로 나는 비슷한 ssh -C2qTnN -D 8080 username@remote_machine접근 방식을 사용하여 로컬 포트 ​​8080을 원격 시스템을 통한 SOCKS 터널로 만듭니다. machine1에서 SSH를 통해서만 액세스할 수 있는 machine2의 랩톱에서 양말 연결을 열고 싶습니다.

그래서 로컬 포트 ​​8080이 machine2로 리디렉션되고 어떻게든 machine1의 8080을 일반적인 의미의 터널 SSH 연결 대신 랩탑의 로컬 포트로 다시 파이프하도록 machine1에서 명령을 실행하고 싶습니다.

답변1

따라서 내가 올바르게 이해했다면 머신 1에서 머신 2로 SSH를 연결할 수 있지만 랩톱에서는 SSH를 사용할 수 없습니다(노트북에서 머신 1로 SSH를 연결할 수 있음). 머신 1에 양말 서버를 설치하고 노트북에서 사용하시겠습니까? 따라서 필요한 것은 랩톱에서 8080을 실행하는 것뿐입니다. 포트 전달:

ssh -nL 8080:localhost:8080 machine1 ssh -C2qnN -D 8080 username@machine2

답변2

이 질문에 대한 2018+ 답변은 다음과 같습니다.RemoteCommand옵션에 지정되어 있습니다 ~/.ssh/config.

Host proxy
    Hostname ma.ch.in.e1
    RemoteCommand ssh -C2qnN -D 8080 username@machine2
    LocalForward 8080 localhost:8080

이것이 필요하다오픈SSH 7.62017년 11월 이후부터. 이전 버전에서는 @StéphaneChazelas의 답변을 사용해야 했습니다.

machine1프록시를 시작하지 않고 연결 하려면 다음과 같이 별칭을 추가하면 됩니다 m1.

Host m1
    Hostname ma.ch.in.e1

관련 정보