How to setup proxy jump with PuTTY
In GNU/Linux I find it very easy to perform the following, but I am struggling to get our Windows users to connect via the same method.
The following is what I do on GNU/Linux. Can you please demonstrate how to do the same in Windows. We currently use PuTTY. Is there an alternative?
GNU/LINUX
The raw command without any configuration set up looks like this:
ssh -J <jump-user>@<jump-host> <protected-user>@<protected-host>
An SSH config can be created at ~/.ssh/config
that looks like this:
Host jump
User <jump-user>
HostName <jump-host>
Host protected
User <protected-user>
HostName <protected-host>
ProxyJump jump
You can then ssh like this:
ssh protected
Solution 1:
PuTTY does not have a direct equivalent of -J
/ProxyJump
. (Yet – The upcoming version will)
But there are two alternatives (while a bit more complicated to set up):
-
Port forwarding.
You open a connection in one PuTTY instance to the jump host and forward a local port to the protected host. For that see:
How to create SSH tunnel using PuTTY in Windows?And then you open a connection in another PuTTY instance to the forwarded port.
-
Local proxy command using Plink.
This is an equivalent of OpenSSH
ProxyCommand
directive:
OpenSSH ProxyCommand equivalent in PuTTY
Apart from PuTTY, there's also Microsoft build of OpenSSH for Windows. On Windows 10 version 1803 or newer, OpenSSH is built-in. On older versions of Windows 10, you can install it as an "Optional Feature" named "OpenSSH Client". On you can just download a ZIP package. The client tools do not need any installation, you can just extract them.
See also Does OpenSSH support multihop login?
Solution 2:
What I've done in putty is set the host to the jump machine. Then in Connection -> SSH I set the remote command to ssh -Y <protected-user>@<protected-machine>
. Not quite the same thing, but it instructs putty to immediately run the SSH command upon login and when I close that, the whole thing closes down because that command will have completed.