I want to login from one Linux server to another Linux server without the need to enter a password.
Create SSH keys
# Login to server 1 ssh-keygen
Output:
Generating public/private rsa key pair. Enter file in which to save the key (/home/'USERNAME'/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/'USERNAME'/.ssh/id_rsa Your public key has been saved in /home/'USERNAME'/.ssh/id_rsa.pub The key fingerprint is: SHA256:27U2nApZQLSwS1UVh2Lw4aDM/B9/gR0Uum1ppRrqjpg 'USERNAME'@server1 The key\'s randomart image is: +---[RSA 3072]----+ | +o+ .o | | + . Bo+o . | | = o.*... | | o + o . | | + o S . | | . X * + | | . * @ O | |E . .. B * . | | ..+..o o | +----[SHA256]-----+
The utility will prompt to select a location for the keys that will be generated. By default, the keys will be stored in the ~/.ssh
directory within user’s home directory. The private key will be called id_rsa
and the associated public key will be called id_rsa.pub
.
Now we have a private and public key that we can use to authenticate.
Copy keys to server 2
We will use the same keys on server 2:
scp ~/.ssh/id_rsa USERNAME@server2ip:~/.ssh scp ~/.ssh/id_rsa.pub USERNAME@server2ip:~/.ssh
Create authorized_keys on both servers:
ssh-copy-id USERNAME@localhost ssh-copy-id USERNAME@server2ip
Connect to server 2
ssh USERNAME@server2ip # or just ssh server2ip
Now we SHOULD connect to server2 without the need to enter a password.
Failing - But why?
Unluckily in my case I still have to enter a password. But why?
# Login to server 2 ssh server2ip Password: # check auth.log less /var/log/auth.log ... rexec line 15: Deprecated option RSAAuthentication ... # check sshd_config less /etc/ssh/sshd_config ... RSAAuthentication no ...
So in my case the RSA-Authentication has been disabled.
As the default is enabled by purpose, this has been done by purpose.
Unfortunatly I am not the admin or manager of the server, so I can not change this settings.