/ PRODUCTO · CÓDIGO ABIERTO · RUST

sshh.

Un gestor de conexiones SSH para la terminal. Se usa igual que ssh: recuerda tus servidores y mantiene sus sesiones abiertas una al lado de otra.

Linux · MIT / Apache-2.0 · No guarda contraseñas

Las conexiones a la izquierda; cada columna es el ssh del sistema en su propia terminal.

/ POR QUÉ

Treinta servidores, un fichero de configuración y una pestaña para cada uno.

¿Qué IP tenía staging? ¿Qué puerto usa el servidor de copias, y pasa por el bastión? Las respuestas acaban repartidas entre el historial de la shell, un ~/.ssh/config sin notas y una docena de pestañas abiertas.

sshh guarda tus conexiones en una lista en la que puedes buscar, con nombre, etiquetas y notas para cada una, y abre sus sesiones una junto a otra en una sola ventana. No reimplementa SSH: siempre ejecuta el ssh del sistema, así que tu configuración, tu agente, ProxyJump, ControlMaster, known_hosts y las llaves FIDO siguen funcionando como hoy.


/ IGUAL QUE SSH

Escribe ssh como siempre. Añade una h.

sshh acepta exactamente los mismos argumentos que ssh. La primera vez que te conectas a un sitio nuevo, un pequeño formulario te ofrece guardarlo, ya relleno con lo que usaría el propio ssh. A partir de ahí, basta con el alias.

$ sshh -p 2222 deploy@web.example.com

Nueva conexión
Aliasweb Hostweb.example.com Usuariodeploy Puerto2222 Etiquetasprod, web▏

Enter guardar y conectar · Esc solo conectar

# la próxima vez

$ sshh web

$ sshh web uptime

$ sshh -L 8080:localhost:80 web

01

Tus opciones mandan

Con un alias guardado, sshh solo rellena host, usuario, puerto, llave o salto si no los has indicado tú. Lo que no entiende pasa a ssh sin tocarlo.

02

Nunca estorba

Si algo suyo falla, sshh avisa y ejecuta ssh con tus argumentos originales. El formulario solo aparece en terminales interactivas, así que los scripts no se enteran.

03

Seguro como alias

Añade alias ssh=sshh a tu shell y sigue escribiendo lo de siempre. Con sshh ssh-config sync, scp, rsync y git también conocen tus alias.


/ SESIONES

Tus servidores a la izquierda. Sus shells, una al lado de otra.

Ejecuta sshh sin argumentos y tendrás una interfaz al estilo de lazygit: la lista de conexiones con sus detalles y tantas columnas de terminal como quepan en pantalla, cada una una sesión viva entre las que saltas sin cerrarlas.

  1. BUSCAR

    Búsqueda difusa

    Por alias, nombre, usuario, host, descripción y etiquetas. Filtra con #prod o combina #prod #db.

  2. DIVIDIR

    Columnas y paneles

    Hasta nueve columnas, y paneles apilados dentro como en tmux. Reordénalos o pon uno a pantalla completa.

  3. SSH DE VERDAD

    Una terminal real

    Cada sesión es ssh en su propia pseudoterminal: contraseñas, avisos de host key, vim, htop, el ratón y 5000 líneas de historial.

  4. FICHEROS

    sftp al lado

    Pulsa s para abrir sftp del mismo servidor en la columna de al lado, mientras su sesión ssh sigue abierta.


/ TECLADO

Atajos que tus dedos ya conocen.

Siguen las convenciones de vim, less, lazygit y fzf. Cuando una sesión tiene el foco, todas las teclas van a ella — solo los atajos con Alt se quedan en sshh. Y todo funciona también con el ratón.

j k
moverse por la lista
/
buscar
Space
abrir la sesión en el panel activo
Alt-v
abrirla en una columna nueva
Alt-h Alt-l
mover el foco entre columnas
Alt-f
panel a pantalla completa
Alt-s
recorrer, buscar y copiar el historial
yy
copiar el comando ssh equivalente
c
instalar tu clave pública (ssh-copy-id)
?
todos los atajos

/ DETALLES

Sin secretos

sshh nunca guarda contraseñas. Sigue usando tus llaves y tu agente como siempre.

Importa tu config

sshh import-ssh-config convierte tus bloques Host en conexiones, siguiendo los Include. Pruébalo con --dry-run.

Para scripts

ls, add, rm, history y exportar / importar en JSON para compartir conexiones con tu equipo.

Tu tema

Solo usa la paleta de 16 colores de tu terminal, así que encaja con el resto de tu entorno.


/ INSTALAR

Una línea.
Sin sudo.

$ curl -fsSL https://raw.githubusercontent.com/ewiggin/sshh/main/install.sh | sh

En Linux x86_64 y aarch64 descarga el binario estático, comprueba su SHA-256 y lo instala con su página man en ~/.local/bin. En otros sistemas lo compila desde el código. Vuelve a ejecutarlo para actualizar. sshh lo hace MEPS — si necesitas algo parecido para tu equipo, escríbenos.

VER EN GITHUB ↗