jueves, 6 de septiembre de 2012

AUTENTIFICACIÓN SSH CON LLAVE PRIVADA (PRIVATE KEY)

Aqui comparto con ustedes cómo configurar la autenticación basada en llave compartida sin contraseña con SSH y SCP.

Primero vamos ha verificar que podemos conectarnos al servidor normalmente, utilizando la contraseña correspondiente.

$ ssh usuario@ipservidor

Si no se han podido conectar, verifiquen que el usuario existe en el servidor remoto y que la contraseña es la correcta. Despues de la conexion exitosa, nos desconectamos para trabajar en nuestro sistema local.

Ahora procedemos a generar la llave unica en nuestro sistema local. Es posible que ya exista una llave, asi que verificamos si existe el archivo id_dsa.pub dentro de ~/.ssh

 $ ls -l ~/.ssh 
-rwx--xr-x 1 user user 668 Feb 12 16:07 id_dsa 
-rwx--xr-x 1 user user 599 Feb 12 16:07 id_dsa.pub

Como generar la llave dsa
La generacion de la llave publica/privada es muy sencillo. Solo les recomiendo cuando les pide ingresar la contraseña dejarla en blanco, ya que la idea es hacer el login automatico, de lo contrario hay que ingresar la contraseña cada vez que ejecuten ssh/scp.
$ ssh-keygen -t dsa
Generating public/private dsa key pair. 
Enter file in which to save the key (/home/user/.ssh/id_dsa):      #Presionamos enter Enter passphrase (empty for no passphrase):                 # Presionamos enter Enter same passphrase again:                                            # Presionamos enter Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub. 
The key fingerprint is:
 8f:c3:cb:40:e6:e9:10:f0:0f:68:d2:90:56:eb:1d:94 user@host
Ya sea que tengan una llave anteriormente o la hayan generado es hora de copiar la llave al server tecleando:
scp /root/.ssh/id_dsa.pub root@ipservidor:/root/.ssh/
scp /root/.ssh/id_rsa.pub root@ipservidor:/root/.ssh/
$ ssh-copy-id -i ~/.ssh/id_dsa.pub usuario@ipservidor:

Ahora ya es posible conectarnos via ssh o scp sin ingresar la contraseña para cada conexion. Es necesario asegurarnos de que los archivos con la llave publica permanezcan a salvo de terceros, cambiamos los permisos y restringimos el acceso a los directorios.

$ chmod 600 ~/.ssh/id_dsa ~/.ssh/id_dsa.pub

Los permisos en los archivos deberian ser como los siguientes:
 $ ls -l ~/.ssh
-rw------- 1 user user 668 Feb 13 19:26 id_dsa 
-rw------- 1 user user 599 Feb 13 19:26 id_dsa.pub

Este metodo de conexion de llave publica/privada no necesita cargar el demonio ssh-agent para conectar. Por lo tanto es muy necesario mantener seguros los servidores donde guardamos las llaves.

Ahora si queremos Generar la llave Rsa
Es lo mismo lo que cambia es el nombre.

$ ssh-keygen -t rsa
Generating public/private dsa key pair. 
Enter file in which to save the key (/home/user/.ssh/id_rsa):      #Presionamos enter Enter passphrase (empty for no passphrase):                 # Presionamos enter Enter same passphrase again:                                            # Presionamos enter Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub. 
The key fingerprint is:
 8f:c3:cb:40:e6:e9:10:f0:0f:68:d2:90:56:eb:1d:94 user@host
Ya sea que tengan una llave anteriormente o la hayan generado es hora de copiar la llave al server tecleando:
$ scp /root/.ssh/id_dsa.pub root@ipservidor:/root/.ssh/
$ scp /root/.ssh/id_rsa.pub root@ipservidor:/root/.ssh/
$ ssh-copy-id -i ~/.ssh/id_rsa.pub usuario@ipservidor:

No hay comentarios:

Publicar un comentario