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.