>A veces por la necesidad de ejecutar en forma remota algún comando de manera automática, o simplemente porque estamos cansados de escribir las claves de acceso a cada uno de los servidores que administramos, nos vimos forzados en cambiar el método de autentificación corriente de login de nuestros servidores de Ssh por uno con un juego de llaves publicas/privadas.

Suponiendo que ya se encuentra instalados los servicios, lo primero que debemos hacer es generar las claves dentro del cliente, el cual se quiere conectar de manera remota al servidor Ssh. El comando a utilizar se encuentra dentro del paquete de ssh que a esta altura ya debe estar instalado.

pablo@sshCliente # ssh-keygen -t rsa

El mismo genera un juego de llaves publico (id_rsa.pub) y privada (id_rsa) que están copiadas por default en la carpeta /home/pablo/.ssh, del tipo el tipo RSA con una longitud de 2048 bits, y que serán válidas para nuestra máquina y nuestro usuario (en este caso pablo@sshCliente).

La clave pública deberá ser copiada al servidor de la siguiente manera:

pablo@sshCliente# scp /home/pablo/.ssh/id_rsa.pub pablo@sshServidor:/home/pablo/

y en el servidor:

pablo@sshServidor# cat /home/pablo/id_rsa.pub >> /home/pablo/.ssh/authorized_keys
pablo@sshServidor# rm /home/pablo/id_rsa.pub

Hay que verificar que los permisos del archivo authorized_keys esten correctos (0600).

Ahora se pueden ejecutar comandos de manera remota sin necesidad de escribir una clave:

pablo@sshCliente# ssh pablo@sshServidor ‘comando a ejecutar en servidor’


Links: