La principal utilidad de este método sería la posibilidad de crear scripts y poder ejecutarlos en equipos remotos sin necesidad de introducir la contraseña cada vez. Esto nos permite automatizar tareas, por ejemplo, para crear copias de seguridad. Podemos crear un script que copiará una carpeta en remoto con SCP y que se ejecute de forma periódica creando una tarea en crontab.

Para ello, se usarán las claves pública y privada que ssh nos permite crear.

En la máquina Servidor (Destino):

NOTA: Si la máquina linux que vamos a utilizar esta en nuestra red local y no en un hosting, tendremos que abrir un puerto del router para este servicio SSH. Por defecto SSH utiliza el puerto 22, asi que habrá que abrir el puerto 22 y asociarlo a la ip de nuestra máquina.

Instalamos open-ssh:

apt-get install opsenssh-server

Creamos el directorio .ssh en la carpeta HOME del usuario que se usará para conectarse desde fuera, por ejemplo:

cd /home/manolo

mkdir .ssh

Le damos permisos 0700 a la carpeta .ssh:

chmod 0700 .ssh

Creamos el archivo authorized_keys dentro de .ssh:

touch .ssh/authorized_keys

IMPORTANTE: Si habéis creado la carpeta con otro usuario que no sea manolo, no será este tu propietario. La carpeta .ssh y el archivo authorized_keys tienen que tener como propietario al usuario que se va a conectar, en este caso manolo.

Se puede ver el propietario con ls -all

chown manolo: .ssh

chown manolo: .ssh/authorized_keys

Por último, descomentamos las líneas #PubkeyAuthentication yes y #AuthorizedKeysFile %h/.ssh/authorized_keys en /etc/ssh/sshd_config:

nano /etc/ssh/sshd_config

Y reiniciamos el servicio ssh:

/etc/init.d/ssh restart

En la máquina Cliente (Origen):

Creamos la claves púplica y privada. Podemos elegir la carpeta donde se guardarán las claves, por defecto (Enter) se guardará en /root/.ssh/id_rsa. También se puede ingresar una frase de seguridad, la cual tiene que estar en blanco, no queremos que la conexión nos pida ningún dato.

ssh-keygen -t rsa

Copiamos la clave pública en la máquina servidor/destino

ssh-copy-id -i /home/manolo/.ssh/id_rsa.pub manolo@88.88.88.88

Comprobación:

Fuentes

https://ubunlog.com/configurar-ssh-para-acceso-sin-contrasena/

Configurando un acceso SSH más seguro a un servidor: autenticación con clave pública