SSH Manager: la app open source para gestionar tus servidores

El problema: demasiados servidores, demasiadas contraseñas
Si administras más de un par de servidores, conoces la rutina. Abres la terminal, buscas en tus notas la IP correcta, recuerdas si ese equipo usa contraseña o llave, y escribes otra vez el mismo ssh usuario@host -p 2222. Multiplica eso por diez proyectos y cada mañana empieza con un pequeño caos.
Para resolverlo nació SSH Manager, un proyecto OPEN SOURCE de ADAVAM que reúne todas tus conexiones SSH en una sola aplicación de escritorio, ordenada y segura.
Link: https://github.com/adavam-lab/system-management-terminal-ssh
Qué es SSH Manager
SSH Manager es una aplicación de escritorio para Windows y macOS que guarda, organiza y abre tus conexiones SSH desde una interfaz gráfica, con una terminal integrada en pestañas. Todo vive en una base de datos local: no hay servidores externos ni cuentas en la nube.
La primera vez que la abres te pide crear un usuario. A partir de ahí, inicias sesión, eliges el servidor de la lista lateral y en un clic tienes la terminal lista para trabajar.
Características principales
- Terminal SSH integrada, construida con xterm.js y node-pty, con varias sesiones abiertas en pestañas.
- Gestión de conexiones: agrega, edita y elimina servidores con su host, puerto y usuario.
- Organización por proyectos y catálogos, para agrupar los servidores de cada cliente o entorno.
- Autenticación por contraseña o llave privada SSH, según lo que use cada servidor.
- Inicio de sesión seguro con contraseñas cifradas mediante bcrypt y recuperación de cuenta por PIN.
- Respaldo y restauración de la base de datos en pocos clics.
- Cierre automático por inactividad, para que nadie use tu sesión si te alejas del equipo.
- Instaladores nativos: .exe para Windows y .dmg para macOS.
Cómo está construido
El proyecto combina Angular 22 para la interfaz y Electron 44 para el escritorio, con SQLite (vía better-sqlite3) como base de datos y TypeScript 6. Se divide en dos mitades con una regla clara: Angular nunca toca el sistema directamente.
Cada pieza tiene un papel concreto: Angular dibuja la interfaz, Electron da acceso al sistema, better-sqlite3 guarda los datos en local, node-pty lanza ssh en una pseudoterminal, xterm.js la muestra en pantalla y bcryptjs protege las contraseñas.
Cada petición recorre cuatro capas en el mismo orden: un servicio de Angular la envía por IPC, un handler de Electron la recibe, un servicio aplica la lógica de negocio y un repositorio ejecuta el SQL. Esta separación hace que el código sea fácil de seguir, probar y ampliar, y el README del repositorio incluye un glosario pensado para desarrolladores junior.
Lo que viene: escritorio remoto por túnel SSH
La próxima función, ya en desarrollo, es un botón "Escritorio remoto" en cada conexión: abrirá una pestaña con la pantalla del otro equipo, con mouse y teclado, usando los mismos datos SSH que ya tienes guardados.
La idea es enviar VNC a través de un túnel SSH y mostrarlo dentro de la app con noVNC. Así no se abre ningún puerto nuevo: el servidor VNC remoto solo escucha en localhost y todo el tráfico viaja cifrado por el puerto 22. Se descartó un enfoque tipo RustDesk porque exige instalar un agente propio y semanas de trabajo, mientras que el túnel aprovecha lo que ya existe.
El README documenta paso a paso cómo preparar el equipo remoto en macOS, Linux y Windows, y cómo implementar la función.
Seguridad, sin letra pequeña
Las contraseñas de usuario se guardan con hash bcrypt y la base de datos nunca sale de tu equipo. El proyecto es honesto sobre sus límites: las contraseñas SSH se almacenan en texto plano dentro de SQLite, por lo que en producción conviene usar llaves SSH. También reconoce que la configuración actual de la ventana de Electron es una simplificación que se reforzará más adelante.
Cómo probarlo
Necesitas Node.js 20 o superior, el cliente ssh del sistema y herramientas de compilación nativa (Visual Studio Build Tools con C++ en Windows, o xcode-select --install en macOS).
- git clone https://github.com/adavam-lab/system-management-terminal-ssh.git
- cd system-management-terminal-ssh
- npm install
- npm start
- Para generar tu propio instalador, ejecuta npm run electron:build y lo encontrarás en la carpeta dist/.
Conclusión
SSH Manager convierte una lista dispersa de IPs y contraseñas en un panel ordenado, local y seguro. Y lo mejor: es OPEN SOURCE. El código completo está publicado con licencia MIT, así que puedes usarlo gratis, estudiarlo, adaptarlo a tus necesidades o contribuir con mejoras.
Échale un vistazo en GitHub y, si te resulta útil, déjale una estrella ⭐


