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?


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


PuTTY does not have a direct equivalent of -J/ProxyJump.

But there are two alternatives (while a bit more complicated to set up):

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?


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.

  • Note: remember to include any port forwarding in your "remote command". Furthermore, if you want to add any port forwarding to your running session, you have to add it to your intermediate ssh too. In OpenSSH enter ssh console by ~C on a fresh new line and -L ... / -R ... afterwards. – Hrobky Mar 30 at 22:20
  • That's a very good point. Thanks for adding that. – jefflarkin Apr 1 at 13:53
  • This solution works great. Note that you need to also enable Conection > SSH > Auth > Allow agent forwarding if you want your ssh key used on the first host, to be used on the second host as well. I would assume the -Y option @jefflarkin specified would have done it, but it didn't for me. Maybe it does something completely different though. – cherouvim Apr 16 at 11:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.