Mindeka

Biblioteca de pensamientos e ideas.

Acceder por SSH con clave pública


Este tipo de artículos sobre tareas de un «sysadmin», los publicaré de vez en cuando, explicando de manera sencilla, para que tanto los que se dedican a ello, como los que no lo hacen y quieren saber más, aprendan, porque aun a día de hoy hay gente que me pregunta como «hacerlo» cuando debería ser una práctica casi obligatoria para acceder a nuestros sistemas por SSH, ya no hay que usar password hay que utilizar clave privada/clave pública… ¡Vamos a ello!

Hoy trataremos como dice el artículo, como acceder a nuestro servidor vía ssh sin contraseña pero sí con nuestra propia clave pública/privada.

Creando nuestra clave

La clave se generará en nuestro ordenador de sobremesa, portátil… en definitiva desde el cual accederemos al servidor X.

Generamos nuestra clave:

Con el parámetro -b indicamos que queremos que sea una clave robusta de 4096 bits. Con 2048 bits sería suficiente, pero me gusta ser un tipo duro 😀
Durante la generación nos hará una serie de preguntas que tendremos que responder si queremos cambiar algo o bien dejar por defecto:

Breve explicación de cada pregunta:

  • Enter file in which to save the key (/home/jmdlr/.ssh/id_rsa): Ubicación donde se almacenará nuestra clave tanto privada como pública. Se puede modificar pero no es necesario.
  • Enter passphrase (empty for no passphrase): Se puede añadir una frase por si quieres fortalecer la seguridad de tu clave. Por experiencia dejadla en blanco, terminaréis por olvidarla si no la apuntáis y tendréis que generar una nueva. El resto de líneas solo confirman que se han creado las claves con tu figerprint asociado. Ya estaría lista.

Consultando nuestra clave pública

Ahora ya podremos ver nuestras claves generadas, si no hemos cambiado la ruta por defecto estará en una carpeta oculta dentro de la «home» de nuestro usuario llamada .ssh/

Ahora tendríamos que ir a nuestra «home» en mi caso es /home/jmdlr y luego acceder a la carpeta oculta .ssh:

Veremos que tenemos dos ficheros que tienen por nombre id_rsa. Una de ellas es la clave privada (id_rsa) la cual NO tendremos que compartir y luego la clave pública (id_rsa.pub) que es la que subiremos a nuestro servidor o al servidor que deseemos acceder sin que nos solicite password. Echamos un vistazo a la clave pública:

Ese texto es lo que tenemos que copiar en todos los servidores remotos a los que queramos conectar vía ssh, pero para hacerlo más fácil, existe un comando que nos ayudará a copiarlo.

Copiando la clave pública al servidor

Simplemente usaremos el siguiente comando desde la ruta donde tenemos nuestra claves.

Donde aparece usuario tendremos que poner nuestro nombre de usuario que utilizamos para acceder al servidor y donde aparece IP_servidor_remoto la dirección IP o el registro DNS que nos de acceso al servidor donde queremos añadir nuestra clave pública. En mi ejemplo, accediendo con mi usuario «jmdlr» sería así:

Y si todo va bien me diría lo siguiente hasta preguntarme cual es mi password del usuario para acceder por primera vez:

En el paso que solicita el «password» tendremos que añadirlo y para la próxima vez que queramos acceder tendremos que hacer lo que indica más abajo, simplemente teclearemos ssh jmdlr@10.5.1.5 y estaremos dentro sin solicitarnos contraseña alguna.

Espero que os haya sido fácil de seguir, cualquier cosilla preguntadme de Mastodon/Firefish: @jmdelosreyes@meetiko.org

Categorías: