Está en la página 1de 5

Autentificación trasparente por clave pública/privada con OpenSSH

El protocolo SSH está preparado para que podamos autentificarnos de forma transparente (sin introducir una contraseña manualmente). Para ello, lo que hacemos es generar una pareja de claves pública/privada (podemos tener varias, una por protocolo) en el cliente de SSH y a continuación, al servidor de SSH le especificamos una serie de claves públicas de clientes que, si acceden con la clave privada asociada, pueden entrar sin especificar una contraseña. Cómo hacer esto en concreto varía entre implementaciones de cliente y servidor de SSH, pero si estamos usando OpenSSH, que es lo estándar tanto en Linux y *BSD, como en Cygwin, sólo hay que seguir unos sencillos pasos que vamos a ver a continuación. El primer paso es generar la pareja de claves pública/privada en el cliente con el comando sshkeygen:

$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/supercoco/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/supercoco/.ssh/id_rsa. Your public key has been saved in /home/supercoco/.ssh/id_rsa.pub. The key fingerprint is: 5c:7b:3d:44:21:09:84:a1:e6:8b:42:4e:ec:39:d6:92 supercoco@cliente
Si no le especificamos opciones, el comando crea una clave RSA de 2048 bits, pero podemos cambiar este comportamiento. Por ejemplo, para clave DSA de 1024 bits, sería:

$ ssh-keygen -t dsa -b 1024 Generating public/private dsa key pair. Enter file in which to save the key (/home/supercoco/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/supercoco/.ssh/id_dsa. Your public key has been saved in /home/supercoco/.ssh/id_dsa.pub. The key fingerprint is: 91:84:38:fd:03:b4:74:5a:1c:ad:48:c4:da:57:3b:cc supercoco@cliente

6. Si tenemos la contraseña para entrar.ssh/id_dsa. the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. tendríamos que añadir el contenido de los ficheros/home/supercoco/.ssh/ del usuario del sistema con servidor SSH al que queremos acceder. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY.pub del cliente de SSH al fichero /home/supercoco/. para nuestro propósito es necesario dejarla en blanco. No mail. Last login: Sun Jan 13 22:12:58 2008 from cliente ranagustavo@servidor ~ $ . Por ejemplo. tendremos que introducirla manualmente cada vez que queramos usar la clave privada.ssh/authorized_keys' y ya podemos entrar sin introducir la contraseña: $ ssh ranagustavo@servidor Linux servidor 2.ssh/id_dsa.pub o /home/supercoco/. por lo que la autentificación no será transparente.pub o del id_rsa. to the extent permitted by applicable law.pub ranagustavo@servidor:id_dsa. Y ahora sólo tenemos que copiar el contenido el fichero id_dsa.cliente >> .supercoco. Por ello. aunque no sea lo más seguro.ssh/id_rsa.pub.22 #2 SMP Sun Dec 9 19:33:44 CET 2007 x86_64 The programs included with the Debian GNU/Linux system are free software.Hay que tener en cuenta que si le especificamos una passphrase. si queremos entrar en el servidor SSH con el usuario ranagustavo.pub $ ssh ranagustavo@servidor 'cat id_dsa.pub.ssh/authorized_keys del servidor de SSH.cliente Password: id_dsa.pub en el fichero authorized_keys del directorio $HOME/.supercoco. podríamos incluso hacerlo desde el cliente con un par de comandos: $ scp $HOME/.

sólo tenemos que cambiar los parámetros ChallengeResponseAuthentication y PasswordAuthentication del fichero /etc/ssh/sshd_config a “no“: # Change to yes to enable challenge-response passwords (beware issues with # some PAM modules and threads) ChallengeResponseAuthentication no # Change to no to disable tunnelled clear text passwords PasswordAuthentication no Con un “/etc/init. Para ello. la contraseña.ssh y del fichero authorized_keys son demasiado permisivos.ssh $ chmod 600 $HOME/. partiendo de la configuración estándar de Debian (con otras configuraciones base. puede ser necesario hacer más cosas). podemos incluso querer configurar el servidor de SSH para que no acepte clientes que quieran entrar por el método estándar.Si no funciona. es porque los permisos del directorio .ssh/authorized_keys Una vez que esté configurado correctamente.d/ssh reload” conseguiremos que el sshd relea la configuración. por lo que puede ser necesario hacer lo siguiente en el servidor usando el usuario apropiado (es recomendable hacerlo siempre por si acaso): $ chmod 700 $HOME/. .

*** . diré que la clave caducará en un año. comentario (opcional) Nombre y apellidos: Lola Parra Sageras Dirección de correo electrónico: ****@****. Por favor. 0 = la clave nunca caduca <n> = la clave caduca en n días <n>w = la clave caduca en n semanas <n>m = la clave caduca en n meses <n>y = la clave caduca en n años ¿Validez de la clave (0)?: 1y LLa clave caduca dom 11 mar 2012 23:19:53 CET ¿Es correcto (s/n)? s Introduccimos los datos que nos piden: nombre. Escogemos la opción 5 (1) DSA y ElGamal (por defecto) (2) DSA (sólo firmar) (5) RSA (sólo firmar) Su elección: 5 Escogemos la opción 2048 que es la recomendada las claves RSA pueden tener entre 1024 y 4096 bits de longitud. email. especifique el período de validez de la clave.Generación de la clave pública y privada en Linux Veamos cómo se hace en Linux: Abrimos una shell y escribimos: gpg –gen-key El programa nos dará una serie de opciones para generar nuestro par de claves las cuales responderemos según nos recomiende. ¿De qué tamaño quiere la clave? (2048) El tamaño requerido es de 2048 bits Para este ejemplo.

Es una buena idea realizar alguna otra tarea (trabajar en otra ventana/consola. Ahora debemos generar la clave pública en ASCII para su libre distribución $ gpg -a –export Lola > publica. gpg: clave ###### marcada como de confianza absoluta claves pública y secreta creadas y firmadas….com Introducimos una frase como contraseña La clave es lo más importante. Es necesario generar muchos bytes aleatorios. etc. ponemos a reproducir música. utilizando la fuerza bruta. Con esto ya tenemos nuestro par de claves. un código del que no sabemos su longitud y que puede llegar a varias frases es enorme no importa el tipo de caracteres.key .Comentario: puede ser cualquiera. mover el ratón. Introduzca frase contraseña: ************* Repita frase contraseña: ************* Hacemos lo que nos dice: abrimos ventanas. Se recomienda una frase de una seis palabras o más. usar la red y los discos)…. yo he elegido ma dirección de mi blog lolap. No es realmente necesario meter caracteres raros porque la dificultad de romper.wordpress.