Saltar al contenido
BeoHosting
BeoHosting
Técnico

Cómo usar SSH para administrar un servidor

BeoHosting Team··12 min read de lectura
Cómo usar SSH para administrar un servidor

Qué es SSH y por qué importa

SSH (Secure Shell) es un protocolo de red que permite una comunicación segura entre dos ordenadores a través de una red insegura. En el contexto del alojamiento web, SSH te permite conectarte a tu servidor y administrarlo mediante la línea de comandos: instalar software, editar archivos de configuración, reiniciar servicios, consultar registros y realizar todas las tareas administrativas.

Antes de SSH, los administradores usaban el protocolo Telnet, que enviaba todos los datos (incluidas las contraseñas) sin cifrar. SSH sustituyó a Telnet aportando cifrado a toda la comunicación, lo que significa que nadie que esté espiando el tráfico de red puede ver lo que haces en el servidor ni robar tus credenciales de acceso.

SSH funciona según el principio de una arquitectura cliente-servidor. Tu ordenador (cliente) ejecuta un programa cliente SSH que se conecta al servidor SSH (daemon) que corre en el servidor remoto, normalmente en el puerto 22. Tras la autenticación, obtienes acceso a la línea de comandos del servidor como si estuvieras sentado frente a él.

Clientes SSH

Para conectarte a un servidor por SSH, necesitas un programa cliente SSH en tu ordenador.

Linux y macOS - Terminal

Linux y macOS incluyen un cliente SSH integrado. Abre la aplicación Terminal y usa el comando: ssh usuario@direccion-ip-servidor. Por ejemplo: ssh root@185.210.45.67. El sistema te pedirá la contraseña (o usará una clave SSH si está configurada). Tras una autenticación correcta, verás el prompt de comandos del servidor y podrás empezar a trabajar.

Windows - PuTTY

PuTTY es el cliente SSH gratuito más popular para Windows. Descárgalo desde el sitio oficial (putty.org) y ejecútalo. En el campo "Host Name" introduce la dirección IP del servidor, deja el puerto en 22, selecciona "SSH" como tipo de conexión y haz clic en "Open". Aparecerá una ventana de terminal que te pedirá el nombre de usuario y la contraseña.

Windows 10/11 - SSH integrado

Las versiones más recientes de Windows (10 y 11) incluyen un cliente OpenSSH integrado. Abre PowerShell o el Símbolo del sistema y usa el mismo comando ssh que en Linux. Este enfoque es más sencillo que PuTTY porque no requiere instalar software adicional y utiliza la misma interfaz que Linux/macOS.

Clientes avanzados

Para usuarios que trabajan a diario con varios servidores, clientes avanzados como Termius, MobaXterm o Royal TSX ofrecen funciones adicionales: guardar conexiones, un gestor de archivos SFTP, pestañas para múltiples sesiones, un gestor de snippets e integración con plataformas en la nube.

Configuración básica de SSH

Una configuración adecuada de la conexión SSH te ahorra tiempo y mejora la seguridad.

Archivo de configuración SSH

En Linux y macOS puedes crear un archivo ~/.ssh/config que almacena los ajustes de tus servidores. En lugar de escribir cada vez el comando completo con la dirección IP, el nombre de usuario y el puerto, puedes definir alias. Por ejemplo, puedes definir un alias "miservidor" con Host, HostName (dirección IP), User (nombre de usuario), Port e IdentityFile (ruta a la clave SSH). Después, basta con escribir ssh miservidor y todo se aplicará automáticamente.

Cambiar el puerto predeterminado

SSH usa el puerto 22 de forma predeterminada. Cambiarlo a otro puerto (por ejemplo 2222 u otro puerto no estándar) reduce el número de ataques automatizados, porque la mayoría de los bots solo escanean el puerto 22. No es una medida de seguridad real (seguridad por oscuridad), pero reduce eficazmente el "ruido" en los registros. Cambia el puerto en el archivo /etc/ssh/sshd_config del servidor.

Autenticación por claves SSH

La autenticación por claves es más segura y más cómoda que usar contraseñas. En lugar de recordar y escribir una contraseña cada vez, utilizas un par de claves criptográficas.

Cómo funciona

Un par de claves SSH se compone de una clave privada (que permanece en tu ordenador y nunca se comparte) y una clave pública (que se coloca en el servidor). Cuando te conectas, el servidor envía un desafío que solo el propietario de la clave privada puede resolver. Tu cliente SSH usa la clave privada para firmar, el servidor verifica la firma con la clave pública y, si coinciden, la autenticación es correcta. La contraseña nunca se transmite por la red.

Generar una clave

En Linux y macOS usa el comando ssh-keygen para generar una clave. Recomendamos el algoritmo Ed25519, que es moderno, rápido y seguro. El comando te preguntará dónde guardar la clave (por defecto ~/.ssh/id_ed25519) y si quieres una frase de contraseña (una contraseña adicional para proteger la clave, recomendable). Se crearán dos archivos: la clave privada y la clave pública con la extensión .pub.

Colocar la clave pública en el servidor

La clave pública debe copiarse al servidor en el archivo ~/.ssh/authorized_keys del usuario con el que te conectas. La forma más sencilla es el comando ssh-copy-id, que copia automáticamente tu clave pública al servidor. Como alternativa, puedes añadir manualmente el contenido del archivo .pub a authorized_keys en el servidor.

Desactivar la contraseña

Una vez que confirmes que las claves SSH funcionan, se recomienda desactivar la autenticación por contraseña en el servidor editando el archivo sshd_config y estableciendo PasswordAuthentication en no. Esto aumenta drásticamente la seguridad, porque los bots no pueden adivinar la contraseña: la única forma de acceder es poseyendo la clave privada.

Los comandos SSH más importantes

Estos son los comandos que usarás con más frecuencia en el servidor.

Navegación y archivos

  • ls -la: Lista los archivos del directorio con información detallada (permisos, propietario, tamaño, fecha).
  • cd /ruta/al/directorio: Cambia el directorio activo.
  • pwd: Muestra el directorio actual.
  • cat archivo.txt: Muestra el contenido de un archivo en el terminal.
  • nano archivo.txt: Abre un archivo en el editor nano para editarlo. Ctrl+O para guardar, Ctrl+X para salir.
  • cp origen destino: Copia un archivo. Añade -r para directorios.
  • mv origen destino: Mueve o renombra un archivo o directorio.
  • rm archivo: Elimina un archivo. rm -rf directorio elimina un directorio con todo su contenido (¡ten cuidado con este comando!).
  • chmod 755 archivo: Cambia los permisos del archivo (755 = propietario todo, grupo/otros lectura y ejecución).
  • chown usuario:grupo archivo: Cambia la propiedad del archivo.

Sistema y servicios

  • top o htop: Muestra los procesos activos y el uso de recursos (CPU, RAM) en tiempo real.
  • df -h: Muestra el uso del disco en un formato legible.
  • free -h: Muestra el uso de la memoria (RAM).
  • systemctl status nginx: Muestra el estado de un servicio (nginx, mysql, php-fpm, etc.).
  • systemctl restart nginx: Reinicia un servicio.
  • journalctl -u nginx -f: Muestra en tiempo real los registros de un servicio.
  • tail -f /var/log/syslog: Muestra en tiempo real el registro del sistema.

Red

  • ping dominio.com: Prueba la conexión con un servidor o dominio.
  • curl -I https://dominio.com: Muestra las cabeceras HTTP de un sitio (útil para comprobar redirecciones y cabeceras).
  • netstat -tulpn: Muestra todas las conexiones de red activas y los puertos a la escucha.
  • dig dominio.com: Una consulta DNS que muestra los registros DNS de un dominio.

Transferencia de archivos

El protocolo SSH también permite la transferencia segura de archivos entre tu ordenador y el servidor.

SCP (Secure Copy)

SCP usa SSH para copiar archivos. Para subir un archivo al servidor usa scp archivo_local usuario@servidor:/ruta/en/servidor. Para descargar desde el servidor usa scp usuario@servidor:/ruta/en/servidor/archivo ./directorio_local. Para copiar directorios completos añade el flag -r. SCP es sencillo, pero no ofrece funciones avanzadas como reanudar transferencias interrumpidas.

SFTP (SSH File Transfer Protocol)

SFTP es un protocolo interactivo de transferencia de archivos que funciona sobre SSH. Puedes usarlo desde un terminal con el comando sftp usuario@servidor o mediante clientes gráficos como FileZilla, WinSCP o Cyberduck. SFTP ofrece navegación por directorios, exploración de archivos, subida/descarga con reanudación de transferencias interrumpidas y gestión de permisos, todo a través de una conexión SSH segura.

rsync

rsync es una herramienta de sincronización de archivos más avanzada que transfiere solo los cambios (el delta) en lugar de archivos completos. Es ideal para copias de seguridad y para sincronizar grandes cantidades de datos. El comando rsync -avz --progress origen usuario@servidor:/destino sincroniza un directorio local con uno del servidor, transfiriendo solo los archivos modificados. rsync también admite compresión durante la transferencia y la reanudación de operaciones interrumpidas.

Recomendaciones de seguridad para SSH

  • Usa claves SSH: Prioriza siempre las claves frente a las contraseñas. Desactiva la autenticación por contraseña después de configurar las claves.
  • Restringe el acceso: Usa AllowUsers o AllowGroups en sshd_config para limitar qué usuarios pueden acceder por SSH.
  • Fail2ban: Instala fail2ban, que bloquea automáticamente las direcciones IP tras un determinado número de intentos fallidos de inicio de sesión.
  • Actualiza con regularidad: Mantén el servidor SSH (OpenSSH) actualizado, ya que de vez en cuando se descubren y corrigen vulnerabilidades de seguridad.
  • Protege la clave privada: Nunca compartas la clave privada. Establece una frase de contraseña en la clave. Guarda una copia de seguridad en un lugar seguro.
  • Desactiva el acceso como root: Establece PermitRootLogin en no o prohibit-password y usa sudo para las tareas administrativas.

Conclusión

SSH es la herramienta fundamental para la administración de servidores, y todo propietario de un VPS o servidor dedicado debería aprender los comandos SSH básicos. Empieza con tareas sencillas como consultar registros y reiniciar servicios, y luego pasa progresivamente a configuraciones avanzadas como las claves SSH y la configuración del firewall. Con la práctica, la línea de comandos se vuelve más rápida y eficiente que cualquier interfaz gráfica. En BeoHosting, todos nuestros planes de VPS incluyen acceso SSH y control root completo, y nuestro equipo de soporte está siempre disponible para ayudarte con la configuración y la puesta a punto de la seguridad.

BeoHosting Team

10+ años de experiencia — Especialistas en alojamiento web e infraestructura

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Última actualización: