Cómo usar SSH en Linux: Conexión segura y configuración básica
¿Qué es SSH y por qué deberías usarlo?
SSH (Secure Shell) es un protocolo de red que te permite conectarte a otro equipo de forma remota y segura. A diferencia de protocolos antiguos como Telnet, SSH cifra toda la comunicación entre tu ordenador y el servidor. Esto significa que nadie en el medio (ni siquiera tu proveedor de internet) puede espiar lo que escribes o los datos que transfieres.
Para cualquier persona que administre un servidor ssh linux, SSH es la herramienta fundamental del día a día. Con ella puedes ejecutar comandos, transferir archivos, configurar servicios y gestionar tu máquina como si estuvieras sentado delante de ella.
Piensa en SSH como una llave maestra digital: con la configuración adecuada, puedes abrir las puertas de tu servidor desde cualquier lugar del mundo, siempre que tengas las credenciales correctas.
[INFO]
SSH funciona en el puerto 22 por defecto, aunque se puede cambiar por seguridad. Más adelante veremos cómo hacerlo.
Requisitos previos para conectar ssh
Antes de lanzarte a conectar, necesitas tener tres cosas claras:
- Un servidor con SSH activado: puede ser un VPS, un servidor dedicado o incluso una Raspberry Pi en tu casa.
- Un cliente SSH: si usas Linux o macOS, ya lo tienes instalado (OpenSSH). Si usas Windows, puedes usar PowerShell, o instalar herramientas como PuTTY.
- Credenciales de acceso: normalmente un usuario y una contraseña, o mejor aún, un par de claves ssh.
Si tienes un panel de control como Syspanel (accesible en el puerto 2106), es probable que ya tengas SSH habilitado en tu servidor. En ese caso, solo necesitas los datos de acceso que te proporciona el panel.
Primeros pasos: conectar ssh desde tu terminal
La sintaxis básica para conectarte a un servidor es muy sencilla:
ssh usuario@direccion-del-servidor
Por ejemplo:
ssh root@192.168.1.100
O si tu servidor tiene un dominio asociado:
ssh admin@midominio.com
Al ejecutar este comando, ocurrirá lo siguiente:
- Tu equipo intentará conectarse al puerto 22 del servidor.
- La primera vez, verás un mensaje preguntando si confías en la huella digital del servidor. Escribe
yesy pulsa Enter. - Te pedirá la contraseña del usuario. Escríbela (no verás los caracteres mientras tecleas, es normal).
- ¡Listo! Ya estás dentro del servidor.
[TIP]
Si tu servidor usa un puerto distinto al 22, añade-pseguido del número. Por ejemplo:ssh -p 2222 usuario@servidor.com
Configurar ssh para que sea más seguro
Usar contraseñas para conectar ssh es cómodo, pero no es lo más seguro. Las contraseñas pueden ser adivinadas o interceptadas. La solución es usar claves ssh, que son mucho más robustas.
Generar tus claves SSH
En tu equipo local (no en el servidor), abre una terminal y ejecuta:
ssh-keygen -t ed25519 -C "tu-correo@ejemplo.com"
El comando te preguntará dónde guardar la clave. Pulsa Enter para aceptar la ubicación por defecto (~/.ssh/id_ed25519). Después te pedirá una frase de contraseña (frase de paso). Puedes dejarla vacía, pero es recomendable poner una para mayor seguridad.
Este comando genera dos archivos:
- Clave privada (
id_ed25519): jamás debe salir de tu equipo. - Clave pública (
id_ed25519.pub): esta es la que copiarás al servidor.
Copiar la clave pública al servidor
Existe una herramienta que facilita este proceso:
ssh-copy-id usuario@servidor
Te pedirá la contraseña del servidor una vez y automáticamente añadirá tu clave pública al archivo ~/.ssh/authorized_keys del servidor.
Si ssh-copy-id no está disponible, puedes hacerlo manualmente:
cat ~/.ssh/id_ed25519.pub | ssh usuario@servidor "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
[WARNING]
Nunca compartas tu clave privada. Si alguien la obtiene, tendrá acceso total a todos los servidores donde hayas instalado tu clave pública.
Probar la conexión con claves
Una vez copiada la clave, intenta conectar de nuevo:
ssh usuario@servidor
Si todo ha ido bien, no te pedirá contraseña (o solo te pedirá la frase de paso de tu clave privada). Has configurado el acceso por claves correctamente.
Configurar el servidor ssh linux: ajustes esenciales
Ahora que ya sabes configurar ssh desde el lado del cliente, es hora de endurecer el servidor. El archivo de configuración principal está en /etc/ssh/sshd_config. Deberás editarlo con permisos de administrador:
sudo nano /etc/ssh/sshd_config
Deshabilitar el acceso por contraseña
Una vez que has confirmado que las claves funcionan, puedes desactivar las contraseñas:
PasswordAuthentication no
Esto obliga a que solo se pueda acceder con claves. Es una de las medidas más efectivas contra ataques de fuerza bruta.
Cambiar el puerto por defecto
Cambiar el puerto 22 a otro número (por ejemplo, 2222) reduce drásticamente los intentos de acceso automatizados:
Port 2222
Recuerda actualizar tus comandos de conexión: ssh -p 2222 usuario@servidor
Deshabilitar el acceso root directo
Es mala práctica conectarse directamente como root. Crea un usuario normal y dale permisos de superusuario:
PermitRootLogin no
[INFO]
Después de cada cambio en este archivo, debes reiniciar el servicio SSH para que los cambios surtan efecto:
sudo systemctl restart sshd(en la mayoría de distribuciones).
Transferir archivos con SSH
SSH no solo sirve para ejecutar comandos. También puedes transferir archivos de forma segura con scp o sftp.
Copiar un archivo local al servidor
scp /ruta/local/archivo.txt usuario@servidor:/ruta/destino/
Copiar un archivo del servidor a tu equipo
scp usuario@servidor:/ruta/remota/archivo.txt /ruta/local/
Copiar directorios completos
Usa la opción -r para copiar carpetas recursivamente:
scp -r /ruta/local/carpeta usuario@servidor:/ruta/destino/
[TIP]
Si cambiaste el puerto SSH, añade-P(mayúscula) a scp:scp -P 2222 archivo.txt usuario@servidor:/destino/
Preguntas frecuentes sobre SSH
¿Qué hago si me olvidé la contraseña del servidor?
Si tienes acceso físico al servidor o a la consola de tu proveedor (VPS), puedes reiniciar en modo recovery o usar el panel de control (como Syspanel) para restablecerla. Si el acceso por claves ya está configurado, podrás entrar sin contraseña.
¿Por qué me aparece "Permission denied (publickey)"?
Esto significa que el servidor no acepta tu clave pública. Verifica que la clave pública esté en el archivo authorized_keys del usuario correcto y que los permisos sean los adecuados:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
¿SSH funciona en Windows?
Sí. Windows 10 y 11 incluyen OpenSSH por defecto. Abre PowerShell o el símbolo del sistema y usa los mismos comandos que en Linux.
¿Puedo usar SSH para conectarme a Syspanel?
Syspanel es un panel de control web (accesible en el puerto 2106), pero si gestionas un servidor con él, SSH es la vía para acceder al sistema operativo subyacente. Ambos son complementarios.
¿Cómo sé si mi servidor ssh linux está activo?
Ejecuta en el servidor:
sudo systemctl status sshd
Si no está activo, inícialo con:
sudo systemctl start sshd
Consejos finales para un uso seguro de SSH
- Actualiza tu sistema regularmente: las vulnerabilidades de SSH se corrigen con parches.
- Usa frases de paso en tus claves: aunque es un poco incómodo, añade una capa extra de seguridad.
- Monitorea los intentos de conexión: revisa los logs con
sudo tail -f /var/log/auth.logpara detectar actividad sospechosa. - Considera herramientas como Fail2Ban: bloquean automáticamente las IPs que intentan acceder de forma repetida.
- No compartas tu clave privada: ni por correo, ni por chat, ni por USB. Es tu llave maestra.
Resumen rápido
- SSH es el estándar para administrar servidores de forma segura.
- Para conectar ssh, usa
ssh usuario@servidor. - Las claves ssh son mucho más seguras que las contraseñas.
- Configurar ssh implica editar
/etc/ssh/sshd_configpara endurecer la seguridad. - Puedes transferir archivos con
scposftpsobre el mismo protocolo.
Ahora ya tienes las bases para usar SSH con confianza. Es una herramienta que, una vez dominada, te abre un mundo de posibilidades en la administración de sistemas. No tengas miedo de experimentar en un entorno de pruebas, porque cuanto más practiques, más cómodo te sentirás.
[WARNING]
Siempre prueba los cambios de configuración en un entorno seguro antes de aplicarlos a un servidor en producción. Un error ensshd_configpuede dejarte fuera de tu propio servidor.
Si tienes más dudas, recuerda que los paneles de control como Syspanel (puerto 2106) suelen incluir documentación adicional y opciones gráficas para gestionar el acceso SSH de tu servidor. ¡Feliz conexión segura!
