사무실에 있는 내 workstation에는 두개의 LAN이 연결되어 있고 각각 public network와 private network에 연결되어있다. 외부에서 private network에 연결되어 있는 target host에 SSH로 연결 할 때는 먼저 workstation에 ssh로 연결하고, 여기에서 private망에 물려있는 target host로 또 다시 ssh를 연결해야 한다.

하지만 ssh의 -J option을 이용하면 workstation을 jump host로 이용해서 이런 귀찮은 여러번 접속을 피할 수 있다. 다음은 ssh의 -J 옵션에 대한 설명을 man-page에서 발췌해서 의역한 것이다.
-J 목적지
    Jump host에 ssh 연결을 생성한 다음 최종 목적지 호스트로 TCP 포워딩을 설정하여
    연결을 생성합니다. 여러개의 jump host를 명시하려면 콤마를 사용해서 지정해 줄 수
    있습니다. 이 옵션은 ProxyJump 환경설정 예약어에 대한 단축설정 입니다. 
    주의: 일반적으로 명령줄에 작성하는 옵션들은 최종 목적지 호스트에 적용되며 jump host
    들에는 적용되지 않습니다. Jump host에 옵션을 설정하려면 ~/.ssh/config file을
    활용 하세요.
예를 들어 workstation의 public IP가 203.0.113.5, private network에 있는 target의 IP가 192.168.100.5라 할 때 다음과 같이 203.0.113.5를 jump host로 설정해서 한 번에 접속할 수 있다.
ssh -J user@203.0.113.5 user@192.168.100.5
이러한 설정을 .ssh/config에 jump host를 명시해서 설정해 두면 workstation을 jump host로해서 target에 접속할 수 있고 무엇보다도 visual studio code에서도 곧바로 접속할 수 있다는 점이 편하다. 아래의 설정에서 ProxyJump 설정하는 부분을 눈여겨 보자.
Host workstation HostName 203.0.113.5 User user Host target HostName 192.168.100.5 User user ProxyJump workstation
설정 후에는 private IP인 target으로 곧바로 접속 할 수 있다.
ssh target