How to SSH into Raspberry Pi without password
I have more than three Raspberry Pi in the house. It can get tiring to connect to each one with a password. One way to avoid having to type a password during SSH is to use SSH Key.
SSH(Secure Shell) Key is basically a really really long (about 600 chars long password). The most commonly used is the 2048 RSA encryptions.
Step 1: Check for existing keys
If you have ever created a SSH Key, you can use the same one or create a new one. To check if you already have SSH key on your machine, goto the folder:
cd ~/.ssh
ls
OR
ls ~/.ssh
If you see any file in there that ends with *.pub that is your public key. You should also see a private key without the .pub extension with same name. Below you can see id_rsa and id_rsa.pub are the keys on my machine.
config id_rsa id_rsa.pub known_hosts
If you want to use the same keys, then skip the next step to generate new ones.
Step 2: Create a new SSH Key
Type the following on your Terminal:
ssh-keygen
You will see the following output:
neo@Sushants-MBP .ssh % ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/neo/.ssh/id_rsa): my_key
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in my_key.
Your public key has been saved in my_key.pub.
The key fingerprint is:
SHA256:gqw/vi22+9VhJSJSFYS&JHSDSDdCtD+jm4CJTrXubt3+ts
The key's randomart image is:
+---[RSA 3072]----+
| |
| . . |
| ... . + |
| .... . .= |
| o.o..S+o.o |
| . =.o o= |
| . .= ...+ o .|
| .+o....o..o o.|
| o**+o...+. O.E|
+----[SHA256]-----+
neo@Sushants-MBP .ssh %
Above, I entered my_key as the name of my key, followed by a secret passphrase. The passphrase is optional, you can skip it by pressing enter.
Passphrase is important because if I copied your keys, then I could impersonate you and gain access. The passphrase only you will know.
This will generate a new key for you in the .ssh folder.
neo@Sushants-MBP .ssh % ls
config id_rsa id_rsa.pub known_hosts my_key my_key.pub
Step 3: Add your key to the Pi
Run the following command to copy your key
ssh-copy-id <USERNAME>@<IP-ADDRESS>
This will copy the key over to the Pi. Now try to ssh into your Pi and you should login without entering password!
ssh <USERNAME>@<IP-ADDRESS>
Next I will talk about adding all your hosts in the SSH config that way you will not have to type USERNAME@IP-ADDRESS every single time. Instead it will be as simple as SSH Pi and it will connect to that Pi. Thanks for reading!