If we don't want to use passwords we can set up "keys" that can authenicate us. This is a preferable way of going about SSH since it automates some of the error-prone parts of making the connection.
You'll first need to create a public and a private file. All of this is handled by the following command in the terminal:
ssh-keygen
You'll be prompted to create a filepath. We used /Users/vincent/.ssh/id_demo_purposes
but
you're free to pick another name. The main thing that's important is that you point to a
path that is in your home .ssh
folder. After the command is done you should have generated
two files, which can be varified via ls
.
ls id_demo*
This command should show a id_demo_purposes
(private) file and a id_demo_purposes.pub
(public) file.
Configure
Now that you've gotten your keys set up locally, it's time to move it to the other server. The command you'll want for this uses the following convention;
ssh-copy-id -i <path-to-private-file> <username>@<ip-adr>
In our case, this evaluated to;
ssh-copy-id -i /Users/vincent/.ssh/id_demo_purposes [email protected]
You'll need to give your password one more time, but after that ... you're all set!
SSH
You should now be able to connect via;
ssh -i /Users/vincent/.ssh/id_demo_purposes [email protected]
No password needed.