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_c, and finally accessing the
secret_system using a connection proxied through all three jump hosts.