Secure SSH using Public Key Authentication
Public key authentication is a more secure way of authenticating via SSH to your server and if all password-based authentication methods are disabled, it can prevent any brute force SSH attacks.
Generating a Key
First we need to generate a key that will be used to access your server. In a Linux environment this utility is normally built in, Windows users can download this tool for generating keys.
In Linux you can run the following commands from your bash prompt.
client$ mkdir -p ~/.ssh
client$ chmod 700 ~/.ssh
client$ ssh-keygen -q -f ~/.ssh/id_rsa -t rsa
Enter passphrase (empty for no passphrase):
Do not use your account password, nor an empty passphrase. The passphrase should also be at least 8 characters long.
Distributing a key
The public portion of the RSA key pair must be copied to your server and appended to ~/.ssh/authorized_keys to enable access. If you are running Linux, the public key information to be copied should be located in the ~/.ssh/id_rsa.pub file on your PC.
To copy the public key to your server run:
client$ scp ~/.ssh/id_rsa.pub [email protected]:
server$ mkdir ~/.ssh
server$ chmod 700 ~/.ssh
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
server$ chmod 600 ~/.ssh/authorized_keys
server$ rm ~/id_rsa.pub
Disabling Password Authentication
Once you have loaded your key onto the server and have tested that you are able to login using the key, you can then edit your ssh configuration on the server to disable standard password authentication.
As root, edit the file /etc/ssh/sshd_config on your server.
Ensure the following lines exist and edit as follows
Save the file, and restart sshd
Your server is now secure from brute force ssh attacks.