¿Qué es SSH?
También llamado: Secure Shell, clave SSH, terminal remota
SSH (Secure Shell) es un protocolo para conectarse a un servidor remoto y ejecutar comandos en él a través de una conexión cifrada. Es la forma estándar de administrar servidores Linux.
Con SSH abres una terminal en el servidor como si estuvieras delante de él. Además de comandos, sirve para transferir archivos (SFTP, scp, rsync), crear túneles y autenticarse en servicios como Git.
Ejemplo
Crear una clave, copiarla al servidor y conectarse sin contraseña:
$ ssh-keygen -t ed25519 -C "tu@example.com"
$ ssh-copy-id usuario@203.0.113.40
$ ssh usuario@203.0.113.40
Para no tener que recordar datos, puedes guardarlos en ~/.ssh/config:
Host miweb
HostName 203.0.113.40
User usuario
Port 22
IdentityFile ~/.ssh/id_ed25519
Y conectarte con ssh miweb.
Buenas prácticas en un servidor
- Usa claves en lugar de contraseñas y desactiva el acceso por contraseña (
PasswordAuthentication noen/etc/ssh/sshd_config). - No permitas entrar directamente como root (
PermitRootLogin no); entra con un usuario normal y usasudo. - Protege el puerto con Fail2ban o limita las IP desde el cortafuegos.
- Pon una frase de paso a tu clave privada y no la compartas nunca: la clave pública (
.pub) es la que se copia a los servidores.
Errores habituales
- Desactivar las contraseñas sin comprobar antes que la clave funciona, y quedarse fuera del servidor. Prueba siempre desde una segunda sesión sin cerrar la primera.
¿Tienes un producto o servicio relacionado con SSH? Anúnciate en este término.
Términos relacionados
- SFTP — SFTP es un protocolo para transferir archivos de forma cifrada a través de SSH....
- VPS — Un VPS (Virtual Private Server) es un servidor virtual con recursos reservados (CPU, memoria...
- Fail2ban — Fail2ban es una herramienta para servidores Linux que lee los registros, detecta las IP...
- Ataque de fuerza bruta — Un ataque de fuerza bruta consiste en probar automáticamente miles o millones de combinaciones...
- Puerto — Un puerto es un número del 0 al 65535 que identifica a qué servicio...
- Git — Git es un sistema de control de versiones: guarda el historial completo de cambios...