Conexión segura con ssh

SSH (o Secure SHell) es el nombre de un protocolo y del programa cuya principal función es el acceso remoto a un servidor por medio de un canal seguro en el que toda la información está cifrada. Además de la conexión a otros dispositivos, SSH permite copiar datos de forma segura (tanto archivos sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir contraseñas al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH y también puede redirigir el tráfico del (Sistema de Ventanas X) para poder ejecutar programas gráficos remotamente. El puerto TCP asignado es el 22.

SSH es en si una conexión cifrada y segura puesto que no puedes conectarte a otro servidor o equipo a no ser que se conozcan las credenciales del equipo que se quiere conectar. Sin embargo se pueden sustituir las credenciales por unas llaves RSA como se vera mas adelante.

Pros y contras

Contraseñas

Pro: Fáciles de implementar, pueden expirar y permite establecer parámetros (Mayúsculas, minúsculas, símbolos, números, etc.)

Contra: Vulnerables a ataques de fuerza bruta, error humano, contraseñas débiles, cumplir con los parámetros pueden ser incómodos para los usuarios.

Claves RSA

Pro: Complejas, no se necesitan memorizarse, generado por el ordenador, muy complicado para ataques de fuerza bruta.

Contra: No caduca, susceptible al robo físico.

Instalar SSH

Para instalar SSH en una distribución basada en Debían:

sudo apt install openssh-server

Generar un par de claves publica y privada

Para generar las claves se usa ssh-keygen se ejecuta el siguiente comando:

ssh-keygen -t rsa -b 4096

ssh-keygen generará dos archivos:

  • id_rsa es la clave privada.
  • id_rsa.pub es la clave pública.

Nota: Estos archivos suele crearse en una carpeta oculta en el directorio en el que este situado la consola es recomendable ejecutar el comando cd antes de ejecutar ssh-keygen.

Configurar SSH

Para configurar SSH ejecutar el siguiente comando:

sudo nano /etc/ssh/sshd_config

En sshd_config buscar los siguientes valores que deben estar como se ve en el ejemplo

#LoginGraceTime 2m 
#PermitRootLogin no

PasswordAuthentication no
PubkeyAuthentication yes

Nota: el simbolo numeral delante del texto señala que es una linea comentada (desabilitada).

Copiar llaves al servidor

Para copiar las llaves al servidor de destino se ejecuta el siguiente comando:

ssh-copy-id usuario@IP-Servidor

Una vez terminada la copia se recomienda ejecutar los siguientes comandos:

systemctl restart sshd

reinicia el servicio de SSH.

systemctl status sshd

Status verifica que el servicio esta funcionando, lo cual nos da una confirmación que no se a cometido algún error en la configuración.

Por ultimo solo queda probar muestra configuración haciendo una conexión con SSH con el siguiente comando:

ssh -p 22 usuario@IP-Servidor

La opción -p 22 hace referencia al puerto que se usara para la conexión SSH si es que se cambiara el puerto por defecto (22) por otro puerto (2222 por ejemplo).

Si todo salio bien no debería solicitar una contraseña para iniciar la conexión.

Aquí termina esta entrada espero que les sea de utilidad y aclare tus dudas. pronto habrá una próxima entrada con mas noticias, novedades y laboratorios.

Deja un comentario

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