=== Creating keys ===
ssh-keygen
Similar output will be:
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): test
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in test.
Your public key has been saved in test.pub.
The key fingerprint is:
01:01:43:22:c2:ec:24:85:f3:88:44:88:d6:df:7d:ea Luke@lukeshost
\\
=== Copying public keys to device ===
Now we need to copy the public key onto the server
ssh-copy-id -i ~/.ssh/servername_id_rsa.pub Luke@x.x.x.x
If the server has a custom port:
ssh-copy-id -i ~/.ssh/servername_id_rsa.pub '-p 1234 Luke@x.x.x.x'
\\
=== Logging in using private key ===
You can then log into the device using the private key:
ssh -i ~/.ssh/servername_id_rsa Luke@x.x.x.x
If the private key matches the public key located on the server then it will allow you to log in!#
\\
\\
\\
=== Creating ssh alias ===
Now we can make our lives a little easier so we do not have to specify the key each time:
vim ~/.ssh/config
Host ServerName
Hostname x.x.x.x
User Luke
Port 22 #or you can specify custom port
IdentityFile ~/.ssh/servername_id_rsa #this is the location to the pivate key that you created above
You will now be able to ssh into a device with the shortcut:
ssh ServerName
\\
\\
=== Locking Down to Keys-Only ===
Next we could potentially lock down the server so ONLY keys work.
\\
Add the following to /etc/ssh/sshd_config
PasswordAuthentication no
Then make sure you reload the configuration file.
\\
\\
WARNING: Keep one session open and attempt to log in from a different session, this allows you to get back in if you made an incorrect update