SSH sin contraseña (usando certificados DSA)

ssh tunelPara autentificarnos por ssh hay 2 opciones:

  1. Por la contraseña clásica. Es el método síncrono tiene como inconveniente que hay que introducir la contraseña cada vez que intentamos autentificarlos.
  2. Mediante certificado RSA o DSA. Es el método asíncrono. Resumidamente consiste en generar una clave privada y otra pública, y distribuir la clave pública a los servidores que queremos conectar. Por supuesto la ventaja es que al no pedir contraseña podemos automatizar scripts junto con cron. Por ejemplo realizar una sincronización con unison entre 2 carpetas remotas remotas cada 5 minutos.

Puesto que la primera opción no tiene mucho misterio, voy a explicar como generar la clave y distribuirla, para realizar estos 2 tareas vamos hacer 2 alias, por que es normal que usemos frecuentemente estos comandos algo enrevesados nos ayudamos de los alias:

  • Abrimos el .bashrc : sudo gedit .bashrc y al final del fichero añadimos estos 2 líneas y guarda :
    alias generarClaveSSH='ssh-keygen -t dsa'
    
    alias distribuirClaveSSH='ssh-copy-id -i .ssh/id_dsa.pub'
  • Ahora vamos a generar las claves mediante DSA que corresponde al SSH2, teniendo muchos problemas menos de seguridad que RSA. Para ellos vamos a usar los alias, pero antes abre otra consola para que carge los alias : Escribimos generarClaveSSH . Le damos al enter a todas las preguntas, no escribimos nada, de esta manera no protegemos el certificado SIN un passphrase. Si hubieramos puesto un passphrase cada vez que conectasemos tendríamos que indicar un passphrase nuestro, asi que en principio estaríamos con el mismo problema que antes. Esto se usa para centralizar todas las claves en 1. Si le interesa a alguien lo puedo explicar un poco más, pero veo poco útil especificar un passphrase para el uso que le estoy dando.
  • Ahora simplemente falta distribuir la clave al ordenador remoto para ello necesitamos la IP y el USUARIO, escribimos: distribuirClaveSSH USUARIO@IP. En este momento os preguntara la contraseña de la cuenta USUARIO, la introducimos y a partir de ahora el servidor SSH montado en IP te aceptara directamente por que tiene tu clave pública.
  • Para probarlo como sabreis ssh USUARIO@IP

Nada más, espero que le sirve a alguien, dentro de unos días ampliare este post explicando el unison.

Editado: Aqui esta el post de unison : https://blogricardo.wordpress.com/2008/08/01/unison-sincronizacion-de-carpetas-en-local-o-remoto/

About these ads

Una respuesta

  1. [...] Ambas carpetas sincronizaran automaticamente sin preguntar nada, excepto que el ordenador remoto no tengo vuestra firma asincrona, por tanto os preguntara la contraseña del usuario “susana en este caso”. Para meter este comando en algun script automatico debemos evitar que nos pide la contraseña, para ello seguir los pasos de este post. [...]

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: