Olvídate de Termius y MobaXterm, SSHUB es lo que necesitas

Vistas: 2
0:00 / 0:00
Olvídate de Termius y MobaXterm, SSHUB es lo que necesitas

Hace ya algunos años, en septiembre de 2019 para ser más preciso, grabé un episodio del podcast en el que explicaba cómo me las ingeniaba para gestionar las conexiones a más de cien servidores. Sí, has leído bien, más de cien. En aquella época administraba una infraestructura que me obligaba a tener decenas de terminales abiertas, y mi solución fue un script en Bash que, pasándole un par de parámetros como el uso y la ubicación, me devolvía el nombre del servidor y se conectaba directamente. Era cutre, sí, pero funcionaba. El caso es que las cosas evolucionan, y lo que me encanta del software libre es que siempre aparece alguien con un problema parecido al tuyo que decide resolverlo de una vez por todas. Y esa es precisamente la historia de SSHub, una herramienta que he descubierto hace poco y que me ha hecho recordar aquellos tiempos, pero con una sonrisa mucho más amplia. Porque lo que antes resolvía con un script de quince líneas, ahora puedo hacerlo con una interfaz de terminal que me tiene completamente enganchado.

El problema de gestionar múltiples servidores SSH

Si eres como yo, y gestionas varios servidores SSH a diario, seguro que conoces bien la situación. Tienes cinco, diez o veinte terminales abiertas, cada una conectada a un servidor diferente. Has configurado túneles aquí y allá, tienes claves SSH repartidas por tu sistema, y en algún momento pierdes la noción de qué terminal corresponde a qué servidor. Y no te digo nada si trabajas con equipos y necesitas compartir configuraciones.

Recordar de memoria el nombre de todos los servidores, sus IPs, los puertos, las claves que utiliza cada uno y los túneles que tienes abiertos es una tarea titánica. Por no hablar de cuando necesitas hacer una transferencia de archivos y tienes que recurrir a scp o rsync con rutas kilométricas.

La configuración de SSH, ese archivo ~/.ssh/config, es la base de todo. Ahí defines tus hosts, las IPs, los usuarios, las claves, los puertos. Pero el ~/.ssh/config tiene sus limitaciones. No te agrupa los servidores, no te permite hacer búsquedas rápidas, no te muestra el estado de las conexiones, no lleva un registro de auditoría. Es un archivo de configuración plano, y punto.

Y entonces aparecen herramientas como Termius o MobaXterm. Yo he usado ambas. De hecho, MobaXterm la estuve utilizando durante bastante tiempo y me parecía una herramienta fantástica. Pero tiene un problema gordo: es de pago, es cerrada, y solo funciona en Windows. Termius, por su parte, es multiplataforma, tiene versión para móviles, pero su precio es elevado y el código no es abierto. Y ambas, de una forma u otra, te sacan del terminal. Abren ventanas gráficas, lanzan emuladores, y al final terminas con más ventanas abiertas de las que tenías al principio.

La cuestión es que yo soy un enamorado del terminal. Cuanto más pueda hacer sin salir de él, mejor. Y por eso, cuando descubrí SSHub, supe que había encontrado lo que estaba buscando.

SSHub: la TUI open source que lo unifica todo

SSHub es una Terminal User Interface (TUI) escrita en Rust que te permite gestionar todas tus conexiones SSH desde el propio terminal. Corre dentro de tu emulador de terminal favorito, ya sea gnome-terminal, kitty, alacritty, tmux o el que uses. Y lo mejor de todo es que es completamente gratuita, open source bajo licencia AGPL-3.0, y multiplataforma: funciona en Linux, macOS y Windows.

El proyecto tiene una historia curiosa. Su autor, Petyok, lo empezó como un experimento con inteligencia artificial, usando Claude Opus para generar prácticamente todo el código. De hecho, en el README del proyecto lo dice sin tapujos: This project is 100% vibe-coded slop made with dynamic workflows using Claude Opus 4.8 + Fable 5 + Composer 2.5. Use at your own risk. Y la verdad es que el resultado es sorprendente para ser código generado por IA. No estamos hablando de un proyecto cutre o a medio hacer, sino de una herramienta con 36.000 líneas de Rust, bien estructurada y con funcionalidades muy avanzadas. El primer commit en GitHub es del 1 de junio de 2026, y en apenas dos meses ha alcanzado la versión 0.10.0 con 357 commits. Una evolución meteórica, te diría.

La filosofía de SSHub es respetuosa con tu configuración existente. No pretende sustituir tu ~/.ssh/config, sino complementarlo. Lee tu configuración SSH directamente, la combina con su propia base de datos SQLite interna, y te presenta todo en una interfaz unificada. Y lo hace sin duplicados: si tienes un host definido en tu config, SSHub lo reconoce y no lo duplica.

Características principales

SSHub se organiza en cinco pestañas principales, cada una pensada para cubrir un aspecto de la gestión de conexiones SSH:

  1. Hosts, listado de todos tus servidores con búsqueda, grupos y favoritos
  2. SFTP, navegador de doble panel para transferencia de archivos
  3. Túneles, gestión de túneles SSH locales, remotos y SOCKS
  4. Identidades, gestión de claves SSH
  5. Audit, registro de auditoría de conexiones

Cada una de estas pestañas merece su propio análisis, así que voy a detenerme en cada una.

Instalación de SSHub

La instalación de SSHub es sencilla, especialmente si ya tienes Rust instalado en tu sistema. Y si no lo tienes, te recomiendo que le eches un vistazo al episodio en el que hablé sobre instalar Rust, porque merece mucho la pena.

La forma más directa es usando Cargo, el gestor de paquetes de Rust:

cargo install sshub

Este comando descargará el código fuente, lo compilará y lo instalará en tu sistema. La compilación puede llevar unos minutos, pero el resultado es un binario estático, autónomo y eficiente.

Si prefieres no compilar, también puedes descargar el binario precompilado desde la página de releases de GitHub. Y si eres de los que les gusta tenerlo todo bajo control, puedes clonar el repositorio y usar el Justfile que incluye el proyecto:

git clone https://github.com/Petyok/SSHub.git
cd SSHub
just install

Este último método compila e instala el binario, y además crea una entrada de escritorio y lo deja en ~/.local/bin/sshub.

En Linux, necesitarás tener instaladas las dependencias de D-Bus para la gestión del keyring. En Debian o Ubuntu:

sudo apt-get install -y libdbus-1-dev pkg-config

En Fedora:

sudo dnf install -y dbus-devel pkgconf-pkg-config

Y en Arch Linux:

sudo pacman -S --needed dbus

Una vez instalado, simplemente ejecuta sshub en tu terminal y la magia comienza.

Navegando por SSHub

Cuando arrancas SSHub por primera vez, lo primero que hace es leer tu ~/.ssh/config y construir su base de datos interna. Verás una animación inicial mientras escanea los hosts, y acto seguido te encontrarás con una interfaz limpia y ordenada.

En el panel izquierdo aparecen tus servidores agrupados, y en el panel derecho los detalles del servidor seleccionado. La aplicación te dice cuántos hosts tienes configurados, cuántos de ellos son alcanzables, y te permite empezar a trabajar de inmediato.

La navegación es intuitiva y, como no podía ser de otra forma, sigue el estilo Vim. Usa j y k para moverte arriba y abajo, Enter para conectarte a un servidor, y ? para ver la ayuda completa con todos los atajos de teclado. Y no te preocupes por memorizar nada, porque en la parte inferior de la pantalla tienes siempre visibles los atajos más importantes.

Una de las características que más me ha gustado es la búsqueda difusa. Pulsa / y empieza a escribir. SSHub filtra los servidores en tiempo real mientras escribes, usando el mismo motor de búsqueda que utiliza el editor Helix. Es rápido, es preciso, y cuando tienes decenas de servidores, se agradece enormemente.

También puedes usar el filtro por etiquetas con #. Por ejemplo, si tienes servidores etiquetados como producción, desarrollo o backup, puedes filtrar por una o varias etiquetas a la vez. Y si quieres marcar un servidor como favorito, solo tienes que pulsar f.

El panel de detalles del host es otra de las cosas que me gustan. Cuando seleccionas un servidor, te muestra una tarjeta con información útil: el sistema operativo detectado (con un logo en arte Braille y colores), la latencia, el agente SSH que usa, y el resultado de un ping. Esta información se recopila en la primera conexión y se va actualizando con el tiempo.

Sesiones SSH embebidas

Cuando te conectas a un servidor pulsando Enter, la sesión SSH se abre dentro de la propia TUI. No se abre una ventana nueva, no se lanza un emulador externo. La terminal corre incrustada en SSHub, con todo lo que eso implica.

Y aquí viene una de las funcionalidades más interesantes: el detach. Si pulsas Ctrl+D, la sesión SSH se desacopla del panel principal pero sigue corriendo en segundo plano. Puedes volver al listado de hosts, conectarte a otro servidor, hacer lo que necesites, y luego retomar la sesión anterior cuando quieras. Es como tener tmux integrado, pero sin necesidad de configurar nada.

Además, SSHub permite activar el session logging. Si lo habilitas en la configuración, cada sesión queda registrada en archivos rotados de 10 MiB, con un máximo de 50 archivos por host. Esto es útil para auditoría, para revisar comandos ejecutados, o simplemente para tener un histórico de lo que has hecho en cada servidor.

SFTP de doble panel

Una de las funcionalidades que más me ha sorprendido es el cliente SFTP integrado. SSHub incluye un navegador de doble panel: en el panel izquierdo ves tu sistema local, y en el derecho el sistema remoto al que estás conectado. Puedes navegar por los directorios, seleccionar archivos, y añadirlos a una cola de transferencia con una barra de progreso que te muestra el estado en tiempo real.

Las operaciones básicas están cubiertas: puedes eliminar archivos con d, crear directorios con n, renombrar o mover con R, y cambiar permisos con M usando notación octal. Y todo ello sin necesidad de recurrir a scp, rsync o abrir una sesión SFTP aparte.

La transferencia de archivos es recursiva, respeta los enlaces simbólicos, y utiliza libssh2 nativo, sin dependencias externas. Es rápido, es eficiente, y está todo integrado en la misma interfaz.

Esto, para los que gestionamos servidores a diario, te evita tener que estar abriendo sesiones SFTP aparte. Ya no tienes que estar recordando rutas o haciendo malabarismos con scp. Lo tienes todo ahí, en la misma pantalla.

Gestión de túneles

Los túneles SSH son fundamentales cuando trabajas con servidores remotos. Ya sea para acceder a una base de datos que solo escucha en local, para sortear un firewall, o para crear un proxy SOCKS, los túneles son una herramienta del día a día de cualquier administrador de sistemas.

SSHub soporta tres tipos de túneles:

  • Túneles locales, redirigen un puerto de tu máquina local a un puerto en el servidor remoto
  • Túneles remotos, redirigen un puerto del servidor remoto a un puerto en tu máquina local
  • Túneles SOCKS dinámicos, crean un proxy SOCKS5 a través del servidor remoto

Y lo mejor de todo es que los túneles tienen reconexión automática. Si el túnel se cae, SSHub intenta reconectarlo con un backoff exponencial. Puedes configurar el número máximo de intentos, el retardo inicial, el retardo máximo, y el ratio de jitter. Todo desde el archivo de configuración.

[tunnel_reconnect]
max_attempts = 12
initial_delay_ms = 1000
max_delay_ms = 60000
stable_secs = 5
jitter_ratio = 0.25

Esto significa que si configuras los túneles al arrancar SSHub, estos se mantienen vivos automáticamente, y si se caen, la herramienta se encarga de restaurarlos sin que tengas que hacer nada.

Gestión de claves SSH

La pestaña de identidades te permite gestionar tus claves SSH directamente desde la interfaz. Puedes añadir claves nuevas, cargarlas en el ssh-agent, ver su estado, y eliminarlas cuando ya no las necesites.

La integración con el keyring del sistema (gnome-keyring, KWallet, o el llavero de macOS) hace que las contraseñas de las claves se almacenen de forma segura, sin que tengas que estar escribiéndolas cada vez que te conectas.

Y para los túneles, SSHub usa SSH_ASKPASS en lugar de /dev/tty, lo que significa que la autenticación se hace en segundo plano sin robar el foco de la terminal. Un detalle que se agradece cuando tienes varios túneles configurados.

Auditoría de conexiones

Esta es, para mí, una de las funcionalidades más infravaloradas y, al mismo tiempo, más útiles de SSHub. El registro de auditoría guarda un histórico de todas tus conexiones: cuándo te conectaste, a qué servidor, si la conexión fue exitosa o falló, y durante cuánto tiempo estuviste conectado.

Puedes filtrar por estado (ok o fail), por rango temporal (today, week, month), y obtener estadísticas con el comando:

sshub audit stats --days 7

Te voy a contar una anécdota. Hace unas semanas, estaba haciendo cambios en un servidor de producción. O al menos eso creía yo. Resulta que por error me había conectado al servidor de desarrollo, y estuve aplicando cambios durante veinte minutos antes de darme cuenta. Con SSHub, el registro de auditoría me habría mostrado inmediatamente a qué servidor me había conectado, y me habría ahorrado el disgusto. Desde entonces, no concibo gestionar servidores sin un registro de auditoría.

Modo Broadcast

En la versión 0.10.0, SSHub ha incorporado una funcionalidad que promete ser muy útil: el modo broadcast. Te permite ejecutar un comando en todos los servidores de un grupo o etiqueta a la vez. Imagina que necesitas actualizar todos tus servidores, o comprobar el espacio en disco en varios a la vez. Con el modo broadcast, seleccionas el grupo, escribes el comando, y SSHub lo ejecuta en paralelo usando un pool de 8 hilos.

Antes de ejecutar, puedes hacer un dry-run para ver en qué servidores se va a ejecutar el comando, y los resultados se muestran en un panel acoplado, organizados por host. Todo queda registrado en el log de auditoría, por supuesto.

La autenticación para el modo broadcast usa BatchMode=yes combinado con SSH_ASKPASS, de forma que las credenciales se gestionan en segundo plano sin interrumpir el flujo de trabajo. Esto es importante cuando lanzas comandos contra veinte servidores a la vez y no quieres estar escribiendo contraseñas en cada uno.

El modo broadcast tiene un par de limitaciones que conviene conocer. La primera es que necesita tener configurada la autenticación por clave SSH en todos los servidores de destino, porque si alguno te pide contraseña interactiva, el comando fallará en ese host. La segunda es que los resultados se muestran en el orden en que van llegando, no en el orden en que lanzaste los comandos. Pero para tareas rutinarias como actualizar paquetes, comprobar el estado de un servicio o revisar el espacio en disco, es una funcionalidad que te ahorra un montón de tiempo.

Headless CLI

Aunque SSHub es una TUI, también incluye una interfaz de línea de comandos completa para aquellos que prefieren trabajar desde scripts o automatizaciones. Puedes listar hosts, conectarte directamente, hacer transferencias SFTP, gestionar túneles, y consultar la auditoría, todo desde la terminal sin abrir la interfaz gráfica.

# Listar todos los hosts
sshub list

# Conectarse directamente a un host
sshub connect prod-web

# Mostrar información de un host en JSON
sshub host show --format json

# Copiar un archivo remoto
sshub sftp get usuario@servidor:/ruta/remota /ruta/local

# Listar conexiones fallidas de los últimos 7 días
sshub audit list --status fail --days 7

Y además, puedes generar autocompletados para Bash, Zsh o Fish:

sshub completions bash

Esto significa que puedes usar SSHub tanto si quieres una interfaz visual con la TUI como si prefieres integrarlo en scripts y automatizaciones. Los códigos de salida son los estándar: 0 para éxito, 1 para error operacional, y 2 para error de uso. Así que puedes usarlo sin problemas en pipelines de CI/CD o en scripts de Bash.

Comparativa con Termius y MobaXterm

Para que te hagas una idea clara de dónde encaja SSHub en el ecosistema de herramientas de gestión SSH, he preparado una tabla comparativa con las dos alternativas más conocidas.

AspectoSSHubTermiusMobaXterm
TipoTUI (terminal)GUI (escritorio + móvil)GUI + X server
PrecioGratis 100%Free limitado / Pro $10-30/mesFree limitado / Pro ~€49
CódigoOpen source (AGPL-3.0)Cerrado (propietario)Cerrado (propietario)
MultiplataformaLinux, macOS, WindowsWindows, macOS, Linux, iOS, AndroidSolo Windows
SFTPSí (doble panel)Sí (browser gráfico)
TúnelesSí (local/remoto/SOCKS + keep-alive)Sí (port forwarding)
AuditoríaSí (audit log + session logging)Sí (logs de sesión)No
SSH config híbridoSí (lee en vivo + hot reload)No (importación única)No
Atajos reconfigurablesNoNo
Headless CLINoNo
ColaboraciónNoSí (equipos, vaults compartidos)No
Sincronización cloudNoSí (cifrado E2E)No
Múltiples protocolosSolo SSH (+ SFTP)SSH, Telnet, SerialSSH, RDP, VNC, Telnet, Mosh

Como ves, SSHub no pretende competir en todos los frentes. No tiene sincronización en la nube, no tiene colaboración en equipo, no soporta RDP ni VNC. Pero en lo que hace, que es la gestión de conexiones SSH, lo hace de forma excelente, y encima es gratuito y open source.

Importación y exportación

Si vienes de Termius, PuTTY o mRemoteNG, no te preocupes. SSHub incluye herramientas para importar tus hosts desde estas plataformas. Puedes importar desde:

  • Tu ~/.ssh/config (por supuesto, es la opción por defecto)
  • Copias de seguridad de Termius
  • Sesiones de PuTTY (archivos .reg o sesiones Unix)
  • mRemoteNG (archivo confCons.xml)

Y también puedes exportar tus hosts a formato SSH config, por si quieres compartirlos o migrarlos a otro sistema.

Lo mejor de todo es que SSHub detecta los cambios en tu ~/.ssh/config al vuelo. Si añades un nuevo host mientras SSHub está abierto, lo verás reflejado automáticamente sin necesidad de reiniciar la aplicación. Esto es posible gracias a un file watcher que monitoriza el archivo de configuración.

La importación es inteligente: detecta duplicados y no crea entradas repetidas. Si ya tienes un host definido en tu config, SSHub lo reconoce y lo usa directamente, sin duplicarlo en su base de datos. Esto es importante porque mantiene tu config como fuente única de verdad, y SSHub actúa simplemente como un envoltorio que añade funcionalidades sin alterar tu configuración original.

Personalización

SSHub es una herramienta pensada para adaptarse a ti, y no al revés. Los atajos de teclado son completamente reconfigurables desde la propia interfaz. Pulsa Ctrl+K y verás el panel de configuración de atajos, donde puedes asignar las combinaciones que más te gusten.

La configuración general se almacena en ~/.config/sshub/config.toml, y desde ahí puedes ajustar aspectos como:

  • El fondo opaco o transparente
  • La animación inicial
  • La confirmación al salir
  • Los logos de detección de SO
  • El logging de sesiones

Si te molesta la animación de arranque, la puedes desactivar. Si prefieres un fondo sólido en lugar de transparente, también puedes cambiarlo. Y si quieres que SSHub te pida confirmación antes de salir, lo configuras y listo. Son pequeños detalles, pero marcan la diferencia en el día a día.

[session_logging]
enabled = false
max_file_bytes = 10485760   # 10 MiB
retention_files = 50

Y si necesitas cambiar las rutas por defecto, puedes usar las variables de entorno SSHUB_CONFIG_DIR, SSHUB_DATA_DIR y SSHUB_SSH_CONFIG.

¿Para quién es SSHub?

Te estarás preguntando si SSHub es para ti. Te voy a dar mi opinión sincera.

SSHub es para ti si:

  • Gestionas más de 10 servidores SSH de forma habitual
  • Utilizas túneles SSH con frecuencia
  • Vienes de Termius y buscas una alternativa gratuita y open source
  • Eres un amante del terminal y prefieres hacerlo todo desde ahí
  • Necesitas un registro de auditoría de tus conexiones
  • Quieres tener SFTP integrado sin abrir aplicaciones aparte

SSHub no es para ti si:

  • Solo tienes 3 o 4 servidores (para eso te vale el ~/.ssh/config de toda la vida)
  • Necesitas RDP, VNC o Telnet (SSHub solo hace SSH)
  • Trabajas en equipo y necesitas compartir configuraciones sincronizadas
  • Prefieres una interfaz gráfica con ventanas y ratón

En mi caso particular, SSHub ha pasado a formar parte de mi kit de herramientas diarias. Lo uso para conectarme a los servidores, para transferir archivos con el SFTP de doble panel, para mantener túneles activos, y para tener un registro de todo lo que hago. Y todo ello sin salir del terminal, sin abrir ventanas adicionales, sin complicaciones.

Conclusión

SSHub es un ejemplo de cómo el software libre resuelve problemas reales. Lo que antes requería un script casero, múltiples terminales abiertas, y una buena dosis de memoria, ahora se puede hacer desde una interfaz unificada, elegante y eficiente.

Que esté escrito en Rust le da unas prestaciones de velocidad y consumo de recursos que se notan. Que sea open source te da la tranquilidad de saber que tu flujo de trabajo no depende de una empresa que puede cambiar sus precios o su política de privacidad en cualquier momento. Y que sea una TUI significa que puedes integrarlo en tu flujo de trabajo con tmux, con i3, o con cualquier otro gestor de ventanas.

Si gestionas servidores SSH, te recomiendo que le des una oportunidad a SSHub. Instálalo, pruébalo durante una semana, y luego me cuentas. Estoy seguro de que, como yo, acabarás preguntándote cómo has podido vivir sin él hasta ahora.

Y tú, ¿qué herramienta usas para gestionar tus conexiones SSH? ¿Sigues con el ~/.ssh/config de toda la vida, o has probado alguna de las alternativas? Cuéntamelo en los comentarios.


Más información

Deja una respuesta