The standard OpenSSH SSH client accepts the argument -J
to allow users to utilize a jump host/jump box.
What I recently discovered (and isn’t immediately obvious from the documentation) is that you can actually specify multiple jump hosts – separated by a comma – and the SSH client will jump through each single one in order to reach the target.
For example, running the following command:
ssh -J root@system_a,root@system_b,root@system_c user@secret_system
would result in the SSH client connecting to system_a
, then system_b
, system_c
, and finally accessing the secret_system
using a connection proxied through all three jump hosts.