For each client machine and userid, you must make an ssh-key. The command to do that is:
Code:
ssh-keygen -t ed25519
For each client-side userid -to- remote server, you need to push the public ssh-key (never the private), to the remote server. The command to do that is:
Code:
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@remote
The "username" is optional and not needed if the same between the client machine and remote server.
"remote" can be a DNS name, IP address, some manually setup lookup inside the /etc/hosts or configured in the ~/.ssh/config file.
This only needs to be done once between the username@client and username-whatever@server. Don't screw with the ~/.ssh/ directory permissions or any file permissions inside. ssh-copy-id does the right thing. Test using ssh username@remote. No password should be requested.
These keys will work for ssh logins, scp, sftp, rsync, sshfs, x2go, and most backup tools. There must be 50 other tools that support ssh connections.
To make your life easier, the client-side ~/.ssh/config file is really handy for using a different port, different userid, making ugly dns-names into something short and memorable. The ssh_config manpage has all the settings possible. These are client-side only.