Acceso seguro a un servidor SSH

 



Para conectarse a un sistema remoto de forma segura, usaremos el comando SSH. El formato más básico del comando es:

        ssh host_remoto

En este ejemplo, remote_host es la dirección IP o el nombre de dominio al que está tratando de conectarse. Este comando asume que su nombre de usuario en el sistema remoto es el mismo que el que usa en el sistema local.

Si su nombre de usuario es diferente en el sistema remoto, puede especificarlo usando esta sintaxis:

        ssh usuario_remoto@host_remoto

Cuando se haya conectado al servidor, se le puede solicitar que verifique su identidad mediante el ingreso de una contraseña. 
Para salir de la sesión de ssh y volver a la sesión de shell local, escriba lo siguiente:

        exit

Acceso seguro a SSH

El protocolo SSH proporciona un método seguro para acceder a nuestro servidor privado, mediante el uso de un usuario y una contraseña, de forma remota. Esto ocasiona que la contraseña puede ser capturada por cualquiera, con lo que pone en riesgo la información que tenemos guardada en su interior. De ahí la importancia de usar un sistema de autenticación adicional: las claves SSH.  


Las claves SSH consisten en generar de un par de claves que proporcionan dos largas cadenas de caracteres ( una pública y una privada ), que al contrario que las contraseñas, son casi imposibles de descifrar.
La clave pública se instala en cualquier servidor y luego se desbloquea mediante la conexión con un cliente SSH que hace uso de la clave privada. Si las dos claves coinciden, el servidor SSH permite el acceso sin necesidad de utilizar una contraseña. No obstante, para añadir una capa de seguridad adicional, siempre podemos aumentar la protección de la clave privada usando una contraseña.

Generando nuestra clave

Podemos generar claves ed25519 o claves RSA, yo usaré claves ed25519 ya que es uno de los algoritmos más recomendados actualmente.

Así que abrimos consola y tecleamos:

$ ssh-keygen -t ed25519

Una vez ejecutada la instrucción para generar las claves, se nos pedirá que indiquemos la ruta en la que queremos almacenar la clave.

Enter file in which to save the key (/home/usuario/.ssh/id_ed25519):

Nota: Si no escribimos nada y pulsamos la tecla «Intro», la clave se almacenará en la ruta que aparece entre paréntesis. A veces la clave no se guarda en ruta indicada y lo hace en la carpeta personal, si es así, cópiala dentro de la carpeta oculta /home/usuario/.ssh

Tras indicar la ruta en la que se almacenará la clave, lo siguiente que tendremos que hacer es indicar una contraseña:

Enter passphrase (empty for no passphrase):

Puedes crear una contraseña para la clave privada, y añadir así mas seguridad adicional,  De este modo, aunque algún ciberdelincuente consiguiera la clave, no podría hacer uso de ella mientras no diera con la contraseña.

Si no queremos incluir una contraseña, podemos dejarlo en blanco (como se indica entre paréntesis en la línea de comandos) y pulsar «Intro». .

Una vez finalizado este paso, si todo va bien, deberíamos de tener nuestras claves generadas en la carpeta oculta .shh dentro del directorio Home.

  • La clave pública se guardará en: /home/usuario/.ssh/id_ed25519.pub.
  • La clave privada se guardará en: /home/usuario/.ssh/id_ed25519.

Exportar nuestra clave al servidor.

Tras haber generado las claves, es hora de colocar la clave pública en el servidor virtual donde la queremos utilizar. Podemos copiar la clave pública con la instrucción «ssh-copy-id». Para que se copie correctamente hay que indicar la dirección IP de la máquina, como se indica a continuación:

ssh-copy-id puerto usuario@direccion_IP

Ejemplo:

ssh-copy-id -p 2233 raspberry@192.168.1.227

Este comando lo que hace es copiar nuestra clave pública en la ruta /home/usuario/.ssh del servidor.

Accedemos al servidor, si hemos generado una contraseña para la clave privada, el cliente SSH pedirá que la introduzcamos, si no, entraremos directamente al servidor usando directamente la clave pública.

Restringir autentificación por contraseña (opcional)

Tenemos la opción de restrigir el acceso por contraseñas y solamente acceder a través de las claves SSH. Yo prefiero dejar activo el acceso por contraseña, ya que, si NO estás en tu PC habitual, no podrás entrar al servidor. Pero si aún así prefieres desactivar el acceso por contraseñas, tenemos que modificar el archivo de configuracion SSH.

Abre la terminal y escribe:

$ sudo nano /etc/ssh/ssh_config

Dentro de este archivo buscamos la línea donde aparezca «PasswordAuthentication»   le quitamos la almohadilla "#" y la modificamos para asegurarnos de que solo se pueda acceder usando las claves SSH:

PasswordAuthentication no

Si la línea de «PasswordAuthentication» no existe, tendremos que crearla.

Por último, guardamos los cambios y recargamos SSH para que se efectúen:

sudo systemctl reload sshd

Ahora, solo podrás acceder al servidor si dispones de las claves SSH creadas anteriormente.


Comentarios

Entradas populares de este blog

TP-Link WR841ND repetidor WIFI

Instalar y Configurar aMule en Ubuntu

II. Vodafone Technicolor Tc7230 modo bridge.