Conectarse a servidor por SSH sin tener que introducir el password

Rivest, Shamir y Adleman

Estos tres señores de la foto son Rivest, Shamir y Adleman, los resposables del sistema criptográfico de clave pública RSA (que toma sus iniciales). ¿Y que tiene esto que ver con el SSH? Pues que gracias a sus sistema podemos generar un par de claves pública y privada para autenticarnos en un servidor sin necesidad de introducir el password.

Para ello, en primer lugar tenemos que tener instalado el SSH en nuestro ordenador. Si no lo tenemos, sólo hay que abrir una terminal y escribir:

    sudo aptitude install ssh

Después tendremos que ir a la carpeta oculta de SSH en nuestro home, con un:

    cd ~/.ssh

Una vez dentro de este directorio debemos generar un par de claves RSA, para lo que usaremos el comando ssh-keygen de la siguiente manera:

    ssh-keygen -t rsa

Con lo que obtendremos la salida:

    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/xaman/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/xaman/.ssh/id_rsa.
    Your public key has been saved in /home/xaman/.ssh/id_rsa.pub.
    The key fingerprint is:
    0e:78:59:5c:c8:91:68:49:91:83:53:0b:58:09:27:6d
    The key's randomart image is:
 
    +--[ RSA 2048]----+
    |  o=+=+*.+.      |
    |    .oE.*o+.     |
    |       . o..o    |
    |          . o    |
    |       . + S     |
    |         . o     |
    |             .   |
    |                 |
    |                 |
    +-----------------+

Como podéis ver da la opción de introducir una frase para cifrar la clave privada. Es recomendable para otros usos, ya que no es nada conveniente que te roben la clave privada, porque podrán usarla para entrar directamente al servidor, pero en este caso no la vamos a introducir ya que si lo hacemos, no será necesario introducir el password del servidor pero si el de la clave privada.
Una vez que tengamos los ficheros id_rsa (clave privada) e id_rsa.pub (clave pública) deremos mover el segundo al servidor.
Os recomiendo que para esto uséis el comando scp de la siguiente forma:

    scp id_rsa.pub usuario@dominio:/ruta_del_directorio_de_destino

Una vez que tengamos la clave pública en el servidor tenemos que añadirla al fichero authorized_keys que esta en el directorio .ssh de nuestra cuenta. Si no existiera lo creamos con un:

    mkdir ~/.ssh

Y copiamos dentro la clave. Exista o no el fichero authorized_keys, debemos incluir nuestra clave pública en el, con un:

    cat id_rsa.pub >> authorized_keys

Después de esto ya no será necesario introducir el password de usuario en el servidor.
Para hacer aún más sencilla la conexión podemos añadir al fichero .bashrc (en Linux) o .bash_profile (en Mac OS) del home el siguiente alias:

    alias servidor='ssh usuario@servidor';

De esta forma podemos conectarnos a un servidor con solo escribir su nombre en la terminal.

Si a alguien no le sale, ve algo mal o tiene un sistema mejor, que escriba un comentario!

Esta entrada fue publicada en Linux, Mac OS y etiquetada , , , , , , , , , , , , , . Guarda el enlace permanente.

6 respuestas a Conectarse a servidor por SSH sin tener que introducir el password

  1. Pedro Luis dice:

    Para subir la clave pública al servidor, podemos usar:

    ssh-copy-id usuario@servidor -i .ssh/id_rsa.pub

    Nos pedirá la contraseña y después añadirá la clave pública a authorized_keys. Si sólo tenemos una clave pública podemos evitar especificarla.

    Un saludo!!

  2. Ja dice:

    Está chulo eso de entrar sin meter la p*** contraseña a todas las veces que entras al servidor.
    Gracias por el aporte Pedro Luis. Igual me convencéis para que lo haga yo también.

  3. Pingback: Crear un repositorio con Subversion en OVH y primeros pasos | TecnoCaos

  4. Miguel dice:

    el terminal donde lo abro¿?
    es con windows o con otro S.O¿?
    respondeme cuanto antes es un poco urgente
    gracias…

  5. Miguel dice:

    a vale es con linux
    vale un programa de auditoria wireless como el backtrack4 k emplea el linux
    o hace falta tenerlo innstalado en el dd¿?

  6. Pingback: Configurar Netbeans para trabajar con SVN+SSH | TecnoCaos

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">