Seguridad

¿Es seguro un terminal SSH en el navegador? Qué revisar antes de usarlo

Cómo funciona un terminal SSH web, cuáles son los riesgos reales y los 7 controles de seguridad que debe tener la plataforma: cifrado, 2FA, tickets y auditoría.

Equipo EzServer 7 min de lectura

Abrir un terminal SSH directamente en el navegador es práctico: sin instalar un cliente, sin configurar claves en cada equipo y con acceso incluso desde el móvil. La duda natural es: ¿es seguro? La respuesta corta: depende por completo de cómo esté construida la plataforma. Veamos qué ocurre por detrás y qué debes exigir.

Cómo funciona un terminal SSH web

El navegador no habla SSH directamente. La arquitectura típica tiene tres partes:

  1. Navegador: muestra el terminal (normalmente con la biblioteca xterm.js) y envía lo que escribes.
  2. Gateway de la plataforma: recibe la conexión por WebSocket seguro (WSS) y abre la sesión SSH real con el servidor.
  3. Tu servidor: recibe una conexión SSH normal, cifrada como cualquier otra.

Es decir, el punto crítico es el gateway: es el que guarda las credenciales y decide quién puede abrir cada sesión.

Los riesgos reales

  • Filtración de credenciales si la plataforma almacena contraseñas en texto plano o las envía al navegador.
  • Secuestro de cuenta: sin 2FA, quien descubra la contraseña de tu panel obtiene acceso a todos los servidores.
  • Acceso entre clientes (cross-tenant) en plataformas que no aíslan correctamente los datos de cada cuenta.
  • Sesiones reutilizables: URLs o tokens de conexión que siguen siendo válidos después de usarse.
  • Falta de trazabilidad: no saber quién ejecutó qué, ni cuándo.

Checklist: 7 controles que debe tener la plataforma

#ControlPor qué importa
1Credenciales cifradas en reposoUna filtración de la base de datos no expone tus contraseñas ni tus claves.
2Credenciales que nunca se envían al navegadorLas extensiones maliciosas o un XSS no pueden capturarlas.
3HTTPS + WSS en todo el trayectoNada viaja en texto plano.
42FA obligatorioLa contraseña del panel por sí sola no basta para entrar.
5Ticket de sesión de un solo uso y corta duraciónUn enlace copiado o interceptado no abre otra sesión.
6Aislamiento por cuenta y permisos por servidorCada usuario solo accede a lo suyo o a lo que se ha compartido con él.
7Auditoría de comandosTrazabilidad para incidentes y cumplimiento normativo.

Cómo implementa EzServer cada punto

  • Las contraseñas y claves SSH se guardan cifradas y solo se usan en el servidor de la plataforma.
  • Para abrir el terminal, el navegador o la app recibe un ticket de un solo uso, válido durante unos instantes, y no las credenciales.
  • La autenticación en dos factores protege la cuenta.
  • Uso compartido por servidor: los colaboradores usan su propia cuenta y nunca ven la contraseña.
  • Los comandos quedan registrados en un log de auditoría.
  • Conexiones con keepalive y reconexión automática; con tmux, la sesión se retoma donde se quedó.

Buenas prácticas en tu servidor

La plataforma es una capa; el servidor también debe estar protegido:

# /etc/ssh/sshd_config
PermitRootLogin prohibit-password   # root solo con clave
PasswordAuthentication no           # cuando todos usen clave
MaxAuthTries 3
ClientAliveInterval 60

Complétalo con fail2ban para bloquear intentos de fuerza bruta y mantén el sistema actualizado (apt update && apt upgrade).

En resumen: un terminal en el navegador no es menos seguro que el SSH local, siempre que las credenciales no salgan del servidor de la plataforma, la cuenta tenga 2FA y cada sesión use un ticket desechable.

Preguntas frecuentes

¿El navegador recibe la contraseña de mi servidor?

No debería. En EzServer la contraseña o clave permanece cifrada en el servidor de la plataforma; el navegador solo recibe un ticket de un solo uso y corta duración para abrir la sesión mediante WebSocket seguro.

¿SSH en el navegador es más lento que en el terminal local?

Para tareas de administración la diferencia es imperceptible. La latencia depende sobre todo de la distancia hasta el servidor, no del navegador.

¿Qué pasa si se cae mi conexión a internet en medio de un comando?

EzServer se reconecta automáticamente y, cuando tmux está disponible en el servidor, retoma la misma sesión, así que los comandos largos siguen ejecutándose.

Gestiona todos tus servidores en un solo lugar

Terminal SSH, monitoreo, backups e IA. Conecta tu primer VPS en segundos.

Crear cuenta gratis