Todo sobre llaves SSH. Cómo generarlas y trabajar con ellas

,
Generando y trabajando con llaves SSH

Generando un par de llaves SSH

Generar una nueva llave SSH pública y privada en tu PC local es el primer paso para lograr la autenticación con un servidor remoto sin contraseña. Siempre que las condiciones lo permitan, debes autenticarte mediante llaves SSH.

Para generar llaves SSH pueden emplearse varios algoritmos criptográficos, incluyendo RSA, DSA y ECDSA. La llave RSA es generalmente la preferida y es la llave por defecto. Para generar un par de ellas en tu PC local ejecuta este comando:

El primer parámetro a especificar es la ubicación para almacenar tu llave privada RSA. Presiona ENTER para dejarlo por defecto, lo cual almacenará las llaves SSH en el directorio oculto .ssh del home del usuario. Dejar la ubicación por defecto, le permite al cliente SSH encontrar las llaves automáticamente.

El segundo parámetro a especificar es una contraseña para asegurar la llave privada. Siempre que vayas a usar la llave privada debes especificar la contraseña como una medida adicional de seguridad. Si lo deseas puedes presionar ENTER si no quieres especificar una contraseña.

El procedimiento anterior ha generado un par de llaves SSH RSA, ubicadas en el directorio oculto .ssh dentro del home de tu usuario. Los archivos generados son:

  • ~/.ssh/id_rsa: La llave privada. ¡Nunca compartas este archivo!
  • ~/.ssh/id_rsa.pub: La llave pública asociada con la llave privada. Puede ser compartida sin problema alguno.

Cómo generar un par de llaves SSH con un número grande de bits

Las llaves SSH por defecto son de 2048 bits. Esto es considerado generalmente como suficiente para garantizar la seguridad, pero puedes especificar un número mayor de bits si lo deseas para obtener una llave más robusta. Para ello, debes incluir la opción “-b” con el número de bits que deseas. La mayoría de los servidores soportan llaves con una longitud de, al menos, 4096 bits. Llaves más grandes es posible que no sean aceptadas como protección DDoS.

Si tenías una llave creada anteriormente, el sistema te preguntará si deseas sobreescribir la llave anterior. Si eliges sobrescribir la llave anterior, no podrás iniciar sesión en los servidores que estaban usando la llave anterior.

Eliminar o cambiar la contraseña de una llave privada

Para cambiar o eliminar la contraseña, debes conocer la contraseña original de la llave privada. Si has perdido u olvidado la contraseña, no existe forma de recuperarla, por lo que tendrás que generar un nuevo par de llaves.

Para cambiar o eliminar la contraseña:

Al pedirte que especifiques la contraseña anterior, una vez especificada, puedes establecer una nueva contraseña o simplemente presionar ENTER para no establecer ninguna contraseña (borra la contraseña anterior).

Mostrando la huella (fingerprint) de la llave SSH

Cada par de llaves SSH comparte una sola huella criptográfica que puede ser usada para identificar de forma única las llaves. Esto puede ser útil en una gran variedad de situaciones.

Para ver la huella de una llave SSH:

El comando anterior devuelve la longitud de la llave, la huella en sí, la cuenta y estación que crearon la llave, así como el tipo de algoritmo usado.

Copiando tu llave pública SSH hacia un servidor con ssh-copy-id

Para transferir tu llave pública SSH hacia un servidor SSH:

A continuación, debes de especificar la contraseña del usuario al que quieres transferirle la llave pública. Una vez especificada la contraseña, el contenido (en tu PC) de ~/.ssh/id_rsa.pub será agregado al final del archivo (en el servidor remoto) ~/.ssh/authorized_keys.

Ahora cada vez que quieras iniciar sesión en el servidor remoto, no tendrás que especificar la contraseña del usuario remoto al que le agregaste la llave SSH:

Copiando tu llave pública SSH hacia un servidor sin ssh-copy-id

Si tu PC no tiene la utilidad ssh-copy-id, pero tienes acceso SSH mediante usuario y contraseña en el servidor remoto, puedes copiar el contenido de tu llave pública. O sea, puedes imprimir en pantalla el contenido de tu llave pública y mediante un pipe al comando ssh, incorporarla en el servidor remoto (debes asegurarte que el directorio ~/.ssh e incorporar el contenido de tu llave pública en ~/.ssh/authorized_keys):

A continuación, debes especificar la contraseña del usuario remoto. Una vez que se ha agregado la llave pública, puedes iniciar sesión sin contraseña en el servidor remoto:

En caso de no tener acceso remoto al servidor, debes agregar la llave pública manualmente. Básicamente es seguir la idea anterior:

  1. Copiar la llave SSH pública de tu PC.
  2. Iniciar sesión (físicamente) en el servidor.
  3. Crear el directorio ~/.ssh/
  4. Agregar la llave pública en el archivo en ~/.ssh/authorized_keys.

Si te ha sido útil este tutorial sobre la generación y trabajo con llaves SSH subscríbete a nuestro Universo Digital, pues seguiremos publicando más artículos sobre SSH en GNU/Linux.

0 comentarios

Dejar un comentario

¿Quieres unirte a la conversación?
Siéntete libre de contribuir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *