6 de diciembre de 2010

Autenticación por llaves con OpenSSH

Mi última clase de esta generación del diplomado, me hizo recordar un procedimiento que es muy sencillo pero también es muy util cuando se requiere pasar un script a múltiples servidores, o cuando se requiere de hacer respaldo y almacenarlo en un servidor dedicado para ello.

Si realizamos un respaldo, generalmente se realizan en la madrugada, por lo que impensable que nosotros tecleemos la contraseña a la hora que el respaldo se pase al servidor dedicado para ello. Para éste propósito podemos utilizar una autenticación por llaves.

Al utilizar este procedimiento al intentar conectarnos a un servidor, en vez de pedirnos password, se realizará la autenticación vía el esquema de llaves públicas y privadas.

A continuación, se describen los pasos que debe hacerse en el cliente:

1.- Crear directorios .ssh

[cliente]$ssh localhost
CTRL + C

(con esto se crearán el directorio .ssh en el $HOME, sin la necesidad de preocuparnos de hacerlo manualmente y colocar los permisos).




2.- Generamos llave pública y la privada

[cliente]$cd $HOME/.ssh

[cliente]$ssh-keygen


3.- Copiamos la llave pública al servidor

[cliente]$scp id_rsa.pub 45.28.75.124:/root/.ssh


Ahora, describiremos las instrucciones que deben ejecutarse en el servidor:


4.- Crear directorios .ssh

[servidor]$ssh localhost
CTRL + C

(con esto se crearán el directorio .ssh en el $HOME, sin la necesidad de preocuparnos de hacerlo manualmente y colocar los permisos).

5.- Editar el archivo /etc/ssh/sshd_config y descomentar las siguientes directivas:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

6.- Agregar al contenido de la llave pública que pasamos en el punto 3 al archivo authorized_keys:

[servidor]$cd $HOME/.ssh

[servidor]$cat id_rsa.pub >> authorized_keys


7.- Por último reiniciamos el sshd

[servidor]$/etc/rc.d/rc.sshd restart (slackware)

[servidor]$service sshd restart (fedora/redhat)


Una vez que hemos terminado, solo faltaría la prueba de oro, probarlo :D

[cliente]ssh direccionIPServidor

Si has podido ingresar al servidor sin la necesidad de colocar el password, muchísimas felicidades!!!!!!!


Tips: utilizar el mismo usuario en el cliente y en el servidor.