사무실에 있는 내 workstation에는 두개의 LAN이 연결되어 있고 각각 public network와 private network에 연결되어있다. 외부에서 private network에 연결되어 있는 target host에 SSH로 연결 할 때는 먼저 workstation에 ssh로 연결하고, 여기에서 private망에 물려있는 target host로 또 다시 ssh를 연결해야 한다.
ssh의 -J option을 이용해서 workstation을 jump host로 이용하면 이 귀찮은 문제 피할 수 있다. 다음은 ssh의 man-page 내용을 발췌해서 의역한 것이다.
-J 목적지
    Jump host에 ssh 연결을 생성한 다음 최종 목적지 호스트로 TCP 포워딩을 설정하여
    연결을 생성합니다. 여러개의 jump host를 명시하려면 콤마를 사용해서 지정해 줄 수
    있습니다. 이 옵션은 ProxyJump 환경설정 예약어에 대한 단축설정 입니다. 
    주의: 일반적으로 명령줄에 작성하는 옵션들은 최종 목적지 호스트에 적용되며 jump host
    들에는 적용되지 않습니다. Jump host에 옵션을 설정하려면 ~/.ssh/config file을
    활용 하세요.
예를 들어 my_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를 설정해 두면 my_workstation을 jump host로해서 target에 접속할 수 있고 무엇보다도 visual studio code에서도 곧바로 접속할 수 있어서 편하다.
Host my_workstation HostName 203.0.113.5 User user Host target HostName 192.168.100.5 User user ProxyJump my_workstation
ssh target