Crear y agregar claves para conexión SSH

  Se ha visto ya qué es una conexión SSH y cuáles son sus utilidades más características.
  En esa misma entrada se han dado consejos para hacer que este tipo de conexiones remotas sea más segura. No obstante, siempre habrá alguien que pueda sortear los cambios explicados en esa entrada anterior, puesto que la seguridad en la red virtual es un tema aún demasiado poco estudiado, con la inherente consecuencia de que esta última aún es muy insegura.
  Sin embargo, se va a explicar aquí otro avance en cuanto a seguridad de las conexiones SSH que permitirá hacer más resistente a los ataques, aunque no completamente invulnerable, cualquier conexión remota de este tipo entre equipos informáticos. 

  Este avance en cuestión es la autentificación mediante clave pública, que funciona, paradójicamente, con dos claves: una pública y otra privada.


GENERAR EL PAR DE CLAVES

  En la máquina local se utiliza el comando ssh-keygen -b <número aleatorio de 4 dígitos>.  A continuación, el programa pide la ruta y el nombre del archivo que alojará las claves pública y privada. Se puede guardar donde se quiera, pero la carpeta debe tener permisos "700" [comando chmod 700 -R <nombre del archivo> (anteponiendo sudo si no se está como administrador)] y el archivo con la clave privada "600" [comando chmod 666 <nombre del archivo> (anteponiendo sudo si no se está como administrador)]. De lo contrario la conexión no se establecerá. La clave privada se puede proteger a su vez con una contraseña. De esta manera, si cae en manos no deseadas, lo tendrá un poco más difícil para usarla (en el ejemplo, el número es "5555", el archivo de clave privada es "elb5", y el de la clave pública es "elb5.pub".



COPIAR LA CLAVE PÚBLICA EN EL SERVIDOR

    Ahora se debe copiar la clave pública en el equipo remoto donde se encuentre el servidor SSH. Para ello hay que crear (si no existen ya) el directorio ".ssh" [comando mkdir -p .ssh (anteponiendo sudo si no se está como administrador)] y, en su interior, el archivo "authorized_keys" [comando touch authorized_keys (anteponiendo sudo si no se está como administrador)] en la ruta "/home/<nombre del usuario>". Al directorio hay que darle los permisos "700" y al archivo los permisos "600".

  Acto seguido, se copia la clave pública del archivo original en el archivo "authorized_keys" (un modo de facilitar esta tarea, si no se tienen medios para copiar y pegar el texto directamente entre ambos equipos, es enviar una copia del archivo original al equipo remoto por FTP, scp u otro medio de transmisión de archivos).


PREPARAR EL SERVIDOR SSH

  En el equipo donde se vaya a conectar el usuario remotamente mediante conexión SSH, se debe editar el archivo "sshd_config", situado en la ruta "/etc/ssh/", y descomentar los siguientes parámetros:
  •   PubkeyAuthentication.
  •   AuthorizedkeysFile .ssh/authorized_keys  .ssh/authorized_keys2. 

  También es recomendable descomentar la línea "PasswordAuthentication yes" y cambiar su valor a "no".
  Finalmente, se debe reiniciar el servidor SSH del equipo remoto mediante el comando systemctl restart sshd (anteponiendo sudo si no se está como administrador).

  Tras todas estas configuraciones, puede probarse la nueva conexión utilizando el comando ssh <usuario>@<IP o dominio de equipo remoto> (o bien  ssh -i <archivo de clave privada> <usuario>@<IP o dominio de equipo remoto> si se desea especificar la clave privada).

  Si el equipo remoto debe ser conectado por varios usuarios, lo mejor es que se creen y se configuren el directorio y el archivo pertinentes en el directorio "/root". En el archivo   "authorized_keys" de este nuevo lugar será donde se deban copiar las claves públicas de todos sus usuarios administradores, que siempre entrarán con este papel.

  Espero que la presente entrada haya sido del gusto del lector. En caso afirmativo, aguardo que la comente y/o la comparta, por favor.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.