_Disclaimer: This is not an exhaustive post on why Openssh via chocolatey on Powershell is better than putty, I think it’s ease of use, and simplicity makes it a suitable organic replacement for putty. With the Openssh package you can not only ssh into a linux session, but also generate, secure copy and even create a sshd service similar to pageant that allows _key based authentication. And the service can be set to automatically start each time you boot up your PC unlike pageant which is a little less configurable.

Often I work PSRemoting via Powershell to Window server boxes and Ssh’ing to Linux boxes via Putty. It seemed natural to find another way to make that process organic using just one tool, the "OpenSSH client".

Whils’t in a Powershell, why can’t I simply ssh to a Linux box without having to run putty. Turns out it is as simple as launching an elevated Powershell session, installing Chocolatey aka choco “Windows Package Manager”, similar to apt-get of the debian based distribution or even Homebrew on Mac’s. You can install OpenSSH using Choco as long as you have the supported Windows version.

Note: You previously needed .Net Framework 4.0 installed as a prerequisite but the new version states you no longer need it. Incase you encounter issues with installing, remember this. So lets start by:

A. Opening a Powershell session and install Chocolatey. With an _elevated Powershell session, copy and paste the link below and follow the prompts.

iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

NT: If you encounter script ExecutionPolicy errors, you need to enable script execution by setting the appropriate policy.

Set-executionPolicy remoteSigned
Choco -v //verify chocolatey installed version

B. Once installed close your session and reopen Powershell in an elevated mode. Incase you aren’t aware, that’s simply done by right clicking on Powershell and launching it as an Administrator. Paste snippet below:

choco install openssh

C. Once again following the installation for OpenSSH, close your session or re-open a new Powershell session. This is so Powershell properly picks up the newly added variable path added to your environment variables.

$env:path -split ";"
//look for a path that ends with OpenSSH-XXX

D. After all that’s done, let’s simplify our interaction with Linux by SSHing into a box from Powershell.

ssh ifeanyi@ 172.167.198.19

This is just a small part of what the OpenSSH package is capapble off. In addition to what we have just gone through, you could use one of it's bundled tools to even run a service "sshd service" that allows key based authentication. Services that allow key scan, sftp copy and more. Until I find limitations to what it can do, It is my replacement to Putty when I am working on the windows side of things. So try it and know you are more than welcome to share your experiences too.