Acceso SSH: Configuración básica y conexión segura
¿Te suena eso de “acceso SSH” y te suena a chino? No te preocupes, es mucho más sencillo de lo que parece. SSH (Secure Shell) es como una llave maestra que te permite entrar a tu servidor desde cualquier parte del mundo, de forma segura y cifrada. Olvídate de los paneles de control a veces limitados; con SSH tienes el control total de tu máquina, como si estuvieras sentado frente a ella.
En esta guía, para principiantes absolutos, te voy a explicar paso a paso cómo configurar ssh, cómo hacer una conexión segura ssh y cómo usar llaves ssh para que tu servidor sea una fortaleza. Vamos a desmitificar el tema y, al final, te sentirás como todo un administrador de sistemas.
¿Qué es SSH y por qué lo necesitas?
Imagina que tu servidor es una casa. El panel de control (como cPanel o Syspanel) es la puerta principal, con su cerradura y su portero automático. Es cómodo, pero tiene limitaciones. SSH es la puerta trasera, pero una muy especial: es una puerta blindada con un sistema de seguridad de última generación.
Técnicamente, SSH es un protocolo de red que te permite conectarte a otro equipo de forma remota. La clave está en que toda la comunicación viaja cifrada. Esto significa que si alguien intercepta los datos que envías (como contraseñas o comandos), solo verá un galimatías ininteligible. La seguridad de SSH es la base de la administración moderna de servidores.
¿Para qué lo vas a usar? Para todo: instalar programas, configurar servicios, gestionar archivos, reiniciar el servidor, ver los logs de error, y un largo etcétera. Si tu web da problemas, el primer paso para diagnosticarlo suele ser entrar por SSH.
Requisitos Previos: Antes de Empezar
Antes de lanzarnos a la piscina, necesitas tres cosas:
- Un servidor con SSH habilitado: Esto es lo más común. Casi todos los VPS y servidores dedicados vienen con el servicio SSH activo por defecto. Si usas un hosting compartido, es posible que no tengas acceso, pero si tienes un VPS, seguro que sí.
- Las credenciales de acceso: Necesitas la IP de tu servidor y el usuario (normalmente
rooto un usuario con permisos de superusuario) y su contraseña. Si no las tienes, las encuentras en el correo de bienvenida de tu proveedor de hosting. - Un cliente SSH: Este es el programa que usarás en tu ordenador para conectarte. No te preocupes, no necesitas instalar nada raro.
Paso 1: Configurar SSH en tu Servidor (Linux)
Lo primero es lo primero: asegurarnos de que el servidor ssh está instalado y funcionando. La gran mayoría de distribuciones Linux lo traen por defecto, pero es bueno verificarlo.
Instalación del servidor SSH
Dependiendo de tu distribución, el comando variará un poco. Te dejo los casos más comunes:
Para Debian/Ubuntu y derivados:
sudo apt update
sudo apt install openssh-server -y
Para CentOS/RHEL/Fedora:
sudo yum install openssh-server -y
# O si usas dnf (Fedora más moderno)
sudo dnf install openssh-server -y
Verificar y arrancar el servicio
Una vez instalado, hay que asegurarse de que esté corriendo y que se inicie automáticamente al arrancar el sistema.
# Para ver el estado del servicio
sudo systemctl status ssh
# Para iniciarlo (por si no está activo)
sudo systemctl start ssh
# Para habilitarlo en el arranque
sudo systemctl enable ssh
[TIP]: Si el comando
systemctlno funciona, es que tu sistema es muy antiguo. Prueba consudo service ssh statusosudo service sshd status.
Paso 2: Conexión Básica desde tu Ordenador
Ahora que el servidor está listo, vamos a conectarnos. Aquí es donde entra el cliente SSH.
En Linux o macOS
No necesitas instalar nada. Abre tu terminal (la consola de comandos) y escribe:
ssh usuario@IP_DEL_SERVIDOR
Por ejemplo:
ssh root@192.168.1.100
Te pedirá la contraseña y, ¡listo! Ya estás dentro. Verás que el prompt cambia, indicando que estás en la máquina remota.
En Windows
Windows tiene su propio cliente SSH integrado desde hace unos años, así que también puedes usar el Símbolo del sistema (CMD) o PowerShell y usar el mismo comando ssh. Sin embargo, la herramienta más recomendada y popular es PuTTY.
- Descarga PuTTY desde su página oficial.
- Ábrelo. En el campo "Host Name (or IP address)", escribe la IP de tu servidor.
- Asegúrate de que el puerto sea 22 (el puerto por defecto de SSH).
- Haz clic en "Open".
- Te pedirá el usuario y la contraseña.
Paso 3: Asegurando tu Conexión: Las Llaves SSH
Usar contraseñas es cómodo, pero no es lo más seguro. Las contraseñas pueden ser adivinadas (ataques de fuerza bruta) o interceptadas. La solución es usar llaves ssh, que son como una llave y un candado imposibles de duplicar. Hay dos partes: una llave privada (que nunca, jamás, debes compartir) y una llave pública (que se instala en el servidor).
Generando tus llaves SSH
En Linux/macOS:
Abre tu terminal local y escribe:
ssh-keygen -t rsa -b 4096
Te preguntará dónde guardar la llave (pulsa Enter para usar la ubicación por defecto) y una frase de contraseña (te recomiendo que pongas una, es una capa extra de seguridad). Esto creará dos archivos en tu carpeta ~/.ssh/: id_rsa (la privada) y id_rsa.pub (la pública).
En Windows:
Si usas PuTTY, necesitas una herramienta llamada PuTTYgen (viene con el paquete). Ábrelo y haz clic en "Generate". Mueve el ratón por la ventana para crear aleatoriedad. Guarda la llave privada y copia la clave pública que aparece en el recuadro.
Copiando la llave pública al servidor
Este es el paso crucial. Vamos a copiar el contenido de tu llave pública (id_rsa.pub) y añadirlo al archivo ~/.ssh/authorized_keys del servidor.
La forma fácil (Linux/macOS):
Hay un comando mágico que hace todo esto por ti:
ssh-copy-id usuario@IP_DEL_SERVIDOR
Te pedirá la contraseña y listo. En pocos segundos, tu llave pública estará instalada.
La forma manual (para todos los sistemas):
- Abre el archivo
id_rsa.pubcon un editor de texto y copia todo su contenido. - Conéctate al servidor con tu contraseña (como hicimos antes).
- Ejecuta estos comandos:
mkdir -p ~/.ssh
echo "AQUI_PEGA_EL_CONTENIDO_DE_LA_LLAVE_PUBLICA" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
[WARNING]: Los permisos son súper importantes. Si los archivos tienen permisos demasiado abiertos, el servidor rechazará la llave por seguridad.
Conectándote con tu llave
Ahora, si intentas conectarte de nuevo, el servidor te reconocerá por tu llave y no te pedirá la contraseña.
ssh usuario@IP_DEL_SERVIDOR
¡Y entrarás directamente! Si has puesto frase de contraseña en tu llave, te la pedirá (pero esta nunca viaja por la red, es solo para desbloquear tu llave local).
Paso 4: Medidas de Seguridad Esenciales
Tener SSH abierto al mundo es como dejar la puerta de tu casa entreabierta. Vamos a ponerle un buen cerrojo.
1. Cambiar el puerto por defecto
El puerto 22 es el estándar y, por tanto, el primer objetivo de los bots. Cambiarlo a un número alto (ej: 2299) reduce muchísimo los ataques automáticos.
Edita el archivo de configuración:
sudo nano /etc/ssh/sshd_config
Busca la línea #Port 22 y cámbiala a:
Port 2299
[WARNING]: IMPORTANTE: Antes de reiniciar el servicio, asegúrate de que tu proveedor de hosting no bloquea ese puerto. Y recuerda, cuando te conectes, ahora tendrás que especificar el puerto:
ssh -p 2299 usuario@IP.
2. Desactivar el acceso root por contraseña
El usuario root tiene poderes ilimitados. Si un atacante consigue su contraseña, tiene el control total. Es mejor desactivar el login por contraseña para root y usar un usuario normal.
En el mismo archivo sshd_config, busca y modifica:
PermitRootLogin no
[INFO]: Si desactivas
PermitRootLogin, necesitarás un usuario normal y luego usarsudopara ejecutar comandos administrativos. Esto es una buena práctica estándar.
3. Usar autenticación por llave únicamente
Ya que tienes las llaves configuradas, desactiva el login por contraseña para todos. Esto hace que solo las personas con la llave física (tu ordenador) puedan entrar.
En sshd_config, busca y cambia:
PasswordAuthentication no
Después de hacer estos cambios, siempre reinicia el servicio:
sudo systemctl restart ssh
[WARNING]: Antes de cerrar tu sesión actual, abre una nueva terminal y pruébalo. Si algo va mal, podrás arreglarlo con la sesión que aún tienes abierta. Si lo rompes y cierras la sesión, ¡te quedas fuera!
Paso 5: Solución de Problemas Comunes (FAQ)
Aquí van las dudas que más nos llegan al soporte:
¿Por qué me da "Connection refused" (Conexión rechazada)?
Esto suele significar que el servicio SSH no está corriendo o que el puerto está bloqueado.
- Verifica que el servicio esté activo:
sudo systemctl status ssh. - Verifica que el puerto esté abierto en tu firewall:
sudo ufw status(si usas UFW) osudo iptables -L -n. Deberías ver el puerto 22 (o el que hayas configurado) en la lista. - Asegúrate de que tu proveedor de hosting no bloquea el puerto.
¿Por qué me pide la contraseña aunque ya puse la llave?
Revisa los permisos de tu carpeta .ssh y del archivo authorized_keys en el servidor. Deben ser 700 y 600 respectivamente. También verifica que el contenido de tu llave pública se haya copiado correctamente.
¿Qué es Syspanel y cómo se relaciona con SSH?
Syspanel (antes conocido como HestiaCP) es un panel de control de hosting muy popular. El puerto de acceso a Syspanel es el 2106. Es una herramienta gráfica que te permite gestionar tu servidor, pero SSH te da acceso a un nivel mucho más profundo. A menudo, usarás Syspanel para tareas rápidas (crear cuentas de correo, bases de datos) y SSH para la administración fina del sistema.
¿Cómo me conecto a un puerto específico?
Simplemente añade -p seguido del número de puerto:
ssh -p 2299 usuario@IP_DEL_SERVIDOR
¿Cómo puedo transferir archivos de forma segura?
Puedes usar el comando scp (secure copy) que se basa en SSH:
# Copiar un archivo local al servidor
scp archivo_local.txt usuario@IP_DEL_SERVIDOR:/ruta/destino/
# Copiar un archivo del servidor a tu local
scp usuario@IP_DEL_SERVIDOR:/ruta/origen/archivo.txt .
Conclusión
Y ahí lo tienes. Has pasado de no saber nada de SSH a poder configurar un servidor, conectarte de forma segura y blindarlo contra intrusos. Es un gran paso.
Recuerda los puntos clave:
- SSH es tu puerta segura al servidor.
- Las llaves SSH son imprescindibles para una seguridad seria.
- Cambiar el puerto y desactivar contraseñas son medidas básicas de higiene.
- Siempre prueba los cambios antes de cerrar tu sesión actual.
La práctica hace al maestro. Empieza con tu propio servidor, experimenta y verás que en poco tiempo te moverás por la terminal con total confianza. Si te atascas, no dudes en volver a esta guía o contactar con tu proveedor de hosting. ¡Buena suerte y feliz administración!
