Hace mucho tiempo ya expliqué como hacerlo entre dos Macs, primero con una visión genérica de SSH y después con el tema más concreto de ‘SCP, automatizar las copias de archivos‘. Y nada cambia, es un procedimiento idéntico para cualquier Unix y distribución Linux.
En este caso lo reescribo para tenerlo en cuenta con sistema CentOS y el SELinux, que debes reconfigurar si quieres usarlo. Para el ejemplo utilizaré 2 hosts, Host A y Host B como indica la imagen:
Siendo el Host A nuestra propia máquina, un cliente que se va a conectar vía SSH al equipo remoto, denominado aquí Host B, un servidor o máquina a la que te conectas.
1. Generar la llave pública id_dsa.pub, si no está creada, en el Host A. Si ya la tenemos, pasamos al punto 2.
HostA:/ usuario$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (~/.ssh/id_dsa): (pulsar enter) Enter passphrase (empty for no passphrase): (pulsar enter) Enter same passphrase again: (pulsar enter) Your identification has been saved in ~/.ssh/id_dsa. Your public key has been saved in ~/.ssh/id_dsa.pub. HostA:/ usuario $
2. Crear, si no existe, el directorio .ssh en el Host B
HostB:/ root$ mkdir ~/.ssh
Ajustar permisos al directorio:
HostB:/ root$ chmod 700 .ssh
3. Copiar la llave pública desde el Host A al B
HostA:/ usuario$ scp ~/.ssh/id_dsa.pub root@<ip_equipo_remoto>:~/.ssh/public-key.tmp
4. Añadir la llave pública a las autorizaciones del Host B.
HostB:/ root$ cat ~/.ssh/public-key.tmp >> ~/.ssh/authorized_keys
Con esto ya tenemos generada la confianza entre ambos hosts vía SSH. Si usamos un sistema CentOS o cualquier otro con el sistema de seguridad SELinux, debemos hacer lo siguiente:
5. Resetear la configuración de SELinux en el Host remoto, servidor. En CentOS es necesario corregir las opciones de seguridad del directorio .ssh en SELinux:
HostB:/ root$ restorecon -Rv ~/.ssh
SaludoX