How to enable key based authentication – Putty

It’s time that I had to write a post about this, connecting to Linux server from Windows using Putty via public key. It’s very simple to connect using keys and also it’s highly secure. Putty is the client to connect to Linux based servers from your Windows machine. Here I’m explaining how to generate Key in windows using Putty and how to setup your machine to connect to Linux servers automatically.

Please do follow the steps below:

1, Generating Keys (private and public).
2, Adding the public key to server.
3, Connecting to server using keys.

1. Generating Keys

Key generator is available with Putty to generate private and public keys. You can download PuttyGen from here, download Putty.Gen.

1.1 Open PuttyGen and click on Generate button to create your keys.


1.2 Generate randomness to create keys.


The key passphrase option enables additional security.

1.3 Save private key on the local machine.


2. Adding the public key to server

After generating keys we need to add the public key into the server’s authorized_keys file. This file is in the location “/root/.ssh/authorized_keys“;

2.1 Adding key

# vi /root/.ssh/authorized_keys

If it’s not there, create it.
For security reasons, change the file and folder permissions as follows:

[root@vps ~]# chmod 600 /root/.ssh/authorized_keys
[root@vps ~]# chmod 700 /root/.ssh/


2.2 Uncomment “AuthorizedKeysFile” in SSH configuration file.

vi /etc/ssh/sshd_config
AuthorizedKeysFile      .ssh/authorized_keys

If you need to enable only key based authentication in your server, disable password authentication.

PasswordAuthentication no

2.3 Restart SSHD

[root@vps ~]# /etc/init.d/sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

3, Final step : Connecting to server

Now we have to check whether the keys are working. Please follow the steps to connect server using key.

3.1 Create a “Saved Session”

Here you need to create a new saved session for your key based connection. Mention server IP address, SSH port and session name.


3.2 Add user name

Under “Connections >> Data” add user name to connect to server.


3.3 Add private key

Under “Connections >> SSH >> Auth” you can select the private key that we saved in our machine.


That’s it! Then come to session and save.
Try to connect now 🙂

Also read:

1, What is Rsync over SSH? Command for Rsync over SSH?
2, How to enable login email alert on server – WHM and SSH login alert
3, How to disable SSH login as root user – PermitRootLogin

Post navigation

Arunlal A

Senior System Developer at Zeta. Linux lover. Traveller. Let's connect! Whether you're a seasoned DevOps pro or just starting your journey, I'm always eager to engage with like-minded individuals. Follow my blog for regular updates, connect on social media, and let's embark on this DevOps adventure together! Happy coding and deploying!

Leave a Reply

Your email address will not be published. Required fields are marked *