If you want to use Linux and OpenSSH to automate tasks, and you need to be able to log in automatically from host A (phobos ubuntu 18.04) with user a (mcaliman) to host B (deimos ubuntu 20.04) with user b (mcaliman) without entering a password, these are the steps you need to take:
First log into A (phobos) as user a (mcaliman) and generate an authentication key pair (do not enter a passphrase)
a@A:~> ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx a@A
Now use ssh to create a ~/.ssh directory as user b on B
a@A:~> ssh b@B mkdir -p .ssh
b@B's password:
Finally queue the new public key of user a to b@B:.ssh/authorized_keys and enter b’s password last
a@A:~> cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:
You can now log into B as user b from A as user a without a password
a@A:~> ssh b@B
