How many times I’ve helped customers and friends on this? I’ve lost the count.
So, I thought to write a little article to help whoever will face the same in the future. This might clean up a bit my karma too heheh 😀
Jokes apart, at work we mostly likely get a Windows laptop and you might need to work on remote Linux servers. And yes, you also might have Putty pre installed or shining on your desktop. And it’s perfectly fine, until you realise that the remote server is accessible ONLY using SSH keys. And here is when the fun starts.
Sounds familiar?
You can configure that with Putty, but generating the keys, setting up the application etc could be messy.
Since Windows 10 (latest versions), Microsoft added WSL, which is basically a minimal Linux virtual machine running on your Windows pc/laptop. This means that you can SUPER EASILY create ssh keys, use them and remove all the potential issues that you can face while configuring Putty.
So, ready to do it?
You can follow the official documentation here: https://learn.microsoft.com/en-us/windows/wsl/install
In short:
- Open CMD as Administrator
- run
wsl --install
Yes, that easy!
The process will require you to reboot the Windows machine – mostly likely – but after that, you’ll have a proper Linux shell available.
At that point, you can use ssh-keygen
command to generate your keys.
You will be able to see the content of the public key simply using cat
command:
cat .ssh/id_rsa.pub
And yes, you will use the output of that command to configure your cloud provider or your remote server to accept ssh connections using the key.
Quick note: if you want to connect from your shining brand new WSL shell to your remote server, you need to be sure that the content of .ssh/id_rsa.pub
is stored in .ssh/authorized_keys
under the user’s home, on the remote server.
For example, to connect to myserver.example.com (public IP 213.045.046.32), as root, you need to:
- create the ssh key on the local WSL user account
- have the content of
.ssh/id_rsa.pub
appended/added into/root/.ssh/authorized_keys
- from WSL shell run
ssh myserver.example.com -l root
orssh 213.045.046.32 -l root
And yes, super easy, isn’t it? 🙂
Enjoy! 😉