SSH1 서버를 통해 멀티홉 SSH 터널 설정

SSH1 서버를 통해 멀티홉 SSH 터널 설정

SSH1 서버를 통해 터널링하는 데 문제가 있습니다. 이는 고객의 컴퓨터에 있으며 아니요, SSH2로 업데이트되지 않습니다.


약간의 배경 지식: 고객의 게이트웨이를 통해 성공적으로 터널링할 수 있습니다.

localhost -> gateway.customer.example.com -> srv.customer.internal

이 구성을 사용하여

Host gateway
    Hostname gateway.customer.example.com
    IdentityFile ~/.ssh/mykey
    ...

Host srv-tunnel
    ProxyCommand ssh gateway -W srv.customer.internal:22
    IdentityFile ~/.ssh/mykey
    ...

그리고 나서 간단히

$ ssh srv-tunnel

훌륭하게 작동하고 keyfile을 사용하여 자동으로 터널을 설정합니다 ~/.ssh/mykey.


이 다중 홉 터널에 대해 유사한 구성을 사용하려고 했습니다.

localhost -> gateway.customer.example.com
                |
                v
             onemoregateway.customer.internal -> srv2.customer.internal

하지만 이번에는onemoregatewaySSH 1을 실행 중이고 nc사용할 수 없습니다.. ssh를 사용할 수 있으며 위와 같이 전달 연결을 설정하려고 하면 ssh가 오류와 함께 종료된다는 onemoregateway메시지가 표시됩니다 .The only permitted commands are ssh and scp.stdio forwarding require Protocol 2

그러나 개인 키는 내 로컬 컴퓨터에만 있기 때문에 onemoregateway에서 로 직접 SSH를 통해 연결할 수 없습니다 . srv2상황을 더욱 복잡하게 만들려면 에 하나의 키가 필요 gateway하고 onemoregateway및 에 또 다른 키가 필요합니다 srv2.

그렇다면 어떻게 터널을 통과할 수 있습니까 srv2?

내 동료들이 Windows에서 Putty+Pageant를 사용하여 수행했기 때문에 어떻게든 가능하다고 생각합니다. 하지만 저는 Linux를 사용하고 있습니다.

답변1

좋아, 방법을 찾았지만 터널링을 투명하게 만들 수 있는 방법은 없는 것 같습니다.

Host gateway
    Hostname gateway.customer.example.com
    IdentityFile ~/.ssh/mykey
    ...

Host tunnel-to-srv2
    ProxyCommand ssh gateway -W onemoregateway.customer.internal
    IdentityFile ~/.ssh/myotherkey
    Protocol 1
    LocalForward 10022 srv2.customer.internal:22
    ...

Host srv2
    Hostname localhost
    Port 10022
    IdentityFile ~/.ssh/myotherkey
    Protocol 1
    ...

그리고 이제 해야 할 일

$ ssh tunnel-to-srv2

그리고 마지막으로 별도의 터미널*에서

$ ssh srv2

* 터널링 SSH 프로세스를 백그라운드로 보내는 방법을 찾을 수 없습니다.-fNT


편집: 알고 보니 에는 onemoregateway실제로 있고 nc실행할 수 있지만 전체 경로를 사용해야 합니다./bin/nc

그래서 결국 나는 이 구성을 갖게 되었습니다.

Host gateway
    Hostname gateway.customer.example.com
    IdentityFile ~/.ssh/mykey
    ...

Host tunnel-to-srv2
    ProxyCommand ssh gateway -W onemoregateway.customer.internal
    IdentityFile ~/.ssh/myotherkey
    Protocol 1
    ...

Host srv2
    ProxyCommand ssh tunnel-to-srv2 /bin/nc srv2.customer.internal 22
    IdentityFile ~/.ssh/myotherkey
    Protocol 1
    ...

그냥 달리면 투명한 터널 호핑을 얻을 수 있습니다.

$ ssh srv2

관련 정보