
🔐 Actividad Práctica: Instalación y Configuración de SSH Server y SSH Client en Debian GNU/Linux 13 (Trixie)
🎯 Objetivo de la práctica
Al finalizar esta actividad, el estudiante será capaz de:
✅ Comprender qué es SSH y para qué se utiliza.
✅ Instalar el servidor SSH en Debian GNU/Linux 13.
✅ Instalar el cliente SSH.
✅ Verificar el funcionamiento del servicio.
✅ Realizar conexiones remotas entre equipos.
✅ Administrar servidores Linux de forma segura mediante la red.
✅ Aplicar buenas prácticas básicas de administración remota.
🧠 ¿Qué es SSH?
SSH (Secure Shell) es un protocolo que permite acceder y administrar equipos remotos de forma segura a través de una red.
SSH cifra toda la información transmitida entre el cliente y el servidor, evitando que usuarios malintencionados puedan interceptar credenciales o información sensible.
Algunas aplicaciones de SSH son:
🌐 Administración remota de servidores.
📁 Transferencia segura de archivos.
⚙️ Configuración de servicios.
🐧 Administración de sistemas Linux.
☁️ Gestión de servidores en la nube.
🏗️ Escenario de la práctica
Supongamos que tenemos:
| Equipo | Dirección IP |
|---|---|
| Servidor Debian | 192.168.1.100 |
| Cliente Debian | 192.168.1.101 |
El objetivo será conectarnos desde el cliente al servidor utilizando SSH.
📋 Requisitos
Antes de comenzar verifica lo siguiente:
✅ Debian GNU/Linux 13 (Trixie) instalado.
✅ Conexión de red activa.
✅ Usuario con privilegios sudo.
✅ Repositorios correctamente configurados.
✅ Conectividad entre equipos.
🔄 Paso 1. Actualizar el sistema
Antes de instalar cualquier paquete es recomendable actualizar la información de los repositorios.
Ejecuta:
sudo apt update
Posteriormente actualiza los paquetes instalados:
sudo apt upgrade -y
¿Por qué realizar este paso?
Mantiene el sistema actualizado y garantiza que se instalará la versión más reciente disponible de OpenSSH.
📥 Paso 2. Instalar el Servidor SSH
El paquete encargado de proporcionar el servicio es:
openssh-server
Instalarlo con:
sudo apt install openssh-server -y
Durante la instalación Debian generará automáticamente las claves criptográficas necesarias para el servicio.
🔍 Paso 3. Verificar que SSH esté instalado
Verifica la versión instalada:
ssh -V
Ejemplo de salida:
OpenSSH_10.xp1 Debian
🚀 Paso 4. Verificar el estado del servicio
Ejecuta:
sudo systemctl status ssh
Deberías observar algo similar a:
Active: active (running)
🔧 Paso 5. Iniciar el servicio manualmente
Si el servicio no está iniciado:
sudo systemctl start ssh
🔄 Paso 6. Reiniciar el servicio
Cuando se realizan cambios en la configuración:
sudo systemctl restart ssh
🟢 Paso 7. Configurar el arranque automático
Para que SSH inicie cada vez que el servidor arranque:
sudo systemctl enable ssh
Comprobar:
sudo systemctl is-enabled ssh
Salida esperada:
enabled
🌐 Paso 8. Identificar la dirección IP del servidor
Consultar la dirección IP:
ip a
o
hostname -I
Resultado esperado:
192.168.1.100
📡 Paso 9. Verificar que SSH escucha en el puerto 22
Ejecuta:
ss -tunlp | grep ssh
Resultado esperado:
LISTEN 0 128 0.0.0.0:22
💻 Paso 10. Instalar el Cliente SSH
En Debian normalmente ya está instalado, pero en caso contrario:
sudo apt install openssh-client -y
Verificar:
ssh -V
🔗 Paso 11. Realizar la primera conexión
Desde otro equipo Linux:
ssh usuario@192.168.1.100
Ejemplo:
ssh alumno@192.168.1.100
La primera vez aparecerá:
The authenticity of host can’t be established.
Are you sure you want to continue connecting (yes/no)?
Responder:
yes
Posteriormente introducir la contraseña del usuario.
🔎 Paso 12. Verificar la sesión remota
Una vez conectado ejecutar:
whoami
Resultado:
alumno
Consultar la IP del servidor:
hostname -I
Consultar nombre del equipo:
hostname
🛡️ Paso 13. Verificar el Firewall
Si utilizas UFW:
Comprobar estado:
sudo ufw status
Permitir conexiones SSH:
sudo ufw allow ssh
o
sudo ufw allow 22/tcp
🔐 Paso 14. Configuración básica de seguridad
Respaldar configuración:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Editar:
sudo nano /etc/ssh/sshd_config
Algunas recomendaciones:
Deshabilitar acceso directo de root:
PermitRootLogin no
Limitar intentos de autenticación:
MaxAuthTries 3
Cambiar tiempo de espera:
LoginGraceTime 30
Guardar cambios y reiniciar:
sudo systemctl restart ssh
🔑 Paso 15. Autenticación mediante claves SSH
Generar clave en el cliente:
ssh-keygen
Copiar la clave al servidor:
ssh-copy-id usuario@192.168.1.100
Ejemplo:
ssh-copy-id alumno@192.168.1.100
Posteriormente podrás conectarte sin escribir contraseña:
ssh alumno@192.168.1.100
🧪 Actividades de comprobación
Realiza las siguientes pruebas:
Actividad 1
Verifica el estado del servicio SSH.
sudo systemctl status ssh
Actividad 2
Obtén la dirección IP del servidor.
hostname -I
Actividad 3
Conéctate desde otro equipo mediante SSH.
ssh usuario@IP_DEL_SERVIDOR
Actividad 4
Comprueba el puerto utilizado por SSH.
ss -tunlp | grep ssh
Actividad 5
Genera un par de claves y configura autenticación sin contraseña.
ssh-keygen
ssh-copy-id usuario@IP_DEL_SERVIDOR
📚 Preguntas de reflexión
- ¿Qué significa SSH?
- ¿Qué ventajas ofrece SSH sobre Telnet?
- ¿Cuál es el puerto predeterminado utilizado por SSH?
- ¿Qué función realiza el paquete
openssh-server? - ¿Qué ventajas tiene la autenticación mediante claves?
- ¿Por qué no es recomendable habilitar el acceso directo del usuario root?
- ¿Cómo verificar que el servicio SSH está funcionando correctamente?
✅ Evidencias a entregar
El estudiante deberá entregar un documento PDF con:
📸 Captura de la actualización del sistema.
📸 Captura de la instalación del servidor SSH.
📸 Captura del estado del servicio SSH.
📸 Captura de la dirección IP obtenida.
📸 Captura de la conexión exitosa desde otro equipo.
📸 Captura de la autenticación mediante clave pública.
📸 Captura de la ejecución de:
hostname
hostname -I
whoami
🏆 Conclusión
SSH es una de las herramientas más importantes para la administración de sistemas Linux. Su implementación permite gestionar servidores de manera remota, segura y eficiente, convirtiéndose en una habilidad esencial para administradores de sistemas, especialistas en redes, profesionales de ciberseguridad y desarrolladores que trabajan con infraestructuras Linux. 🐧🔐🚀