#Sysadmin – Administrar múltiples llaves #SSH

openssh-securid

Llaves SSH: el concepto

SSH es un protocolo de inicio de sesión remota que ha sido la base de la seguridad de GNU/Linux (BSD y los UNIX en general) durante décadas, una de las características más importantes consiste en evitar la necesidad de usar usuario-contraseña para la autenticación, sino un sistema de llaves SSH pública-privada basado en el algoritmo RSA, con esto, mi equipo (y solo mi equipo) tiene acceso “sin contraseña” al host, pues se identifica usando una clave RSA.

Ahora bien, en un mundo cada vez más ávido de seguridad, casi todo lo que tenga que ver con datos (y especificamente con acceso a servidores) requiere llaves SSH, por ejemplo, github las requiere, bitbucket, Amazon otorga llaves para acceder a cada equipo, etc.

¿Cómo hacer para gestionar diferentes llaves SSH en un mismo equipo?

Cuando tenemos múltiples llaves SSH instaladas, es un fastidio tener que indicarlas cada vez en el comando SSH:

Deseo que podamos acceder claramente a nuestro equipo sin tener que indicar la llave RSA.

He acá el truco …

Configurando SSH

Debemos configurar SSH para que acepte una configuración especifica por cada host y/o conexión que requerirá su propia llave SSH.

Para dar un ejemplo, tengo 2 llaves privadas, una que me proporciona un servidor de Amazon AWS y otra, que generé con ssh-keygen para conectarme a github, dichas llaves son diferentes.

El primer paso es crear un archivo “config” dentro de nuestro directorio “.ssh” (ese directorio es por usuario).

Allí agregamos:

Y paso a explicar:

Host: nombre “amigable” con el cual identificaremos el host en el comando ssh, puede ser cualquier cosa que nos ayude a memorizar su nombre (no tiene que ser ni el hostname ni la IP real)

Hostname: Esta si es la IP o nombre de host real del equipo al que me voy a conectar.

User: El único usuario con el que iniciaré sesión en ese host, en este caso, mi ID de github.

IdentityFile: Es la llave (que generé con SSH-KEYGEN y subí a github) con la que hago mis commits a github.

Guardo, aplico los permisos al archivo config y a la llave privada:

Y seguido de una línea nueva, agrego la siguiente definición de host:

Aplico los mismos permisos 0600 al archivo id_rsa.blog y listo!

Intenten hacer un:

ssh -l armandof server

Y entrará sin pedir clave usando la llave privada que le hemos configurado.

Notas

  • Pueden indicar varias llaves privadas, repiten (una por línea) y openSSH intentará una por una:

  • Pueden indicar que intente con la llave SSH y si falla, que intente con password (o cualquier otro método alternativo de autenticación, por ejemplo gssapi)

  • Si al servidor se accede por un puerto distinto, indicar en la configuración con la opción “Port”, ejemplo:

  • Si desean que estos hosts estén declarados “system-wide” (para todos los usuarios) entonces deberán definirlos en el archivo:

Happy Hacking! y ¡Ya sabes como!

(Visited 8 times, 1 visits today)
Sobre Armando Felipe Fuentes Denis 113 Artículos
Network Administrator and Telematic Services in Federation of Radio Amateurs of Cuba Residencia: Regla, La Habana Email: [email protected] Movil: +53 58319403

Sé el primero en comentar

Dejar una contestacion

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


*