SSH Jumphosts

From UMIACS
Revision as of 15:29, 2 December 2019 by Gstewar1 (talk | contribs) (Created page with "Sometimes it is necessary to SSH through a host in order to access another host. Although this can be done by manually SSH-ing from one host to another repeatedly, the same t...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Sometimes it is necessary to SSH through a host in order to access another host. Although this can be done by manually SSH-ing from one host to another repeatedly, the same task can be accomplished in one line by jumphosting.

Dynamic Jumphosts

Dynamic jumphosts are most useful for times in which you only need to make this jump once, or rather infrequently.

The basic format for jumphosting is

 ssh -J user1@host1:port1 user2@host2:port2

However, if ports are the same for different hosts, you can use the format

 ssh -J user1@host1 user2@host2

Also, if you need to jumphost through multiple hosts, the format below is also legal

 ssh -J user1@host1:port1,user2@host2:port2 user3@host3

Static Jumphosts

Static jumphosts are most useful for times in which you will often need to make this jump, and allows you type a short, simple command instead of the longer line as shown in Dynamic Jumphosts section above. In order to create this shortcut, you must edit your ~/.ssh/config file.

Setup

In your ~/.ssh/config file

  Host directJump
     HostName mydirectjump.example.org
  
  Host secondJump
     HostName mysecondjump.example.org
     ProxyJump directJump

If another jump is needed, the following format can be added as needed to the same ~/.ssh/config file

  Host finalJump
     HostName myfinaljump.example.org
     ProxyJump secondJump

Use

After saving the above changes to your ~/.ssh/config file, if you wish to access that final host

  ssh finalJump