Public key authentication method requires you to copy your public SSH key to the server's authorized_keys file. This could be done manually or with the use of tools such as ssh-copy-id. You could also use some SSH tricks to copy your SSH key to the server.
authorized_keys file is located in the server's ~/.ssh/ directory of the user that you want to connect to. Copying your public key to the file will allow you to log in to the server without entering your username and password combination with the use of public key authentication method. If your key pair is generated without a passphrase it could be used you to easily perform some automation tasks which includes remotely executing commands via a script.
$ ls ~/.ssh/id* /home/user/.ssh/id_rsa /home/user/.ssh/id_rsa.pub
The public key is normally the one with the .pub extension.
$ ssh-copy-id [email protected] The authenticity of host 'remote-host (192.168.111.135)' can't be established. ECDSA key fingerprint is SHA256:hXGpY0ALjXvDUDF1cDs2N8WRO9SuJZ/lfq+9q99BPV0. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 2 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
If you want to use other public key rather that then one in the default location, use the -i option as the following
$ ssh-copy-id -i ~/.ssh/other_key.pub [email protected]
$ ssh -i .ssh/id_rsa [email protected] Welcome to Ubuntu 19.04 (GNU/Linux 5.0.0-20-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Jun 29 11:31:23 UTC 2019 System load: 0.16 Processes: 211 Usage of /: 25.8% of 19.56GB Users logged in: 1 Memory usage: 13% IP address for ens33: 192.168.111.135 Swap usage: 0% * MicroK8s 1.15 is out! It has already been installed on more than 14 different distros. Guess which ones? https://snapcraft.io/microk8s 0 updates can be installed immediately. 0 of these updates are security updates. Last login: Sat Jun 29 11:08:20 2019 from 192.168.111.1
Alternative methods:
$ cat ~/.ssh/id_rsa.pub | ssh [email protected] 'cat >> ~/.ssh/authorized_keys
Guide compatibility:
Operating System |
---|
Ubuntu Linux |
Debian Linux |
Red Hat Enterprise Linux |
Fedora Linux |
CentOS Linux |
openSUSE Linux |
SUSE Linux Enterprise Server |
FreeBSD |
OpenBSD |
NetBSD |
macOS |
Comment anonymously. Login not required.