InfraGuard

Terminal SSH PTY interactiva

Un shell real en el navegador (top/vi/sudo funcionan): xterm.js ⇄ WebSocket ⇄ un puente ssh2 en Node ⇄ el sshd remoto.

Visión general: qué hace

La acción [ssh] de una tarjeta de instancia abre una terminal interactiva real en el navegador. Es una consola PTY: xterm.js ⇄ WebSocket ⇄ un puente Node (scripts/infr_ssh_bridge.cjs, basado en ssh2) ⇄ el sshd remoto. Como ssh2 asigna un PTY remoto, los programas interactivos como top, vi, sudo y less funcionan (comprobado: tty = /dev/pts).

Esto no es Reverb (el modelo pub/sub no sirve para un flujo PTY) y no es node-pty (ssh2 es JavaScript puro, multiplataforma y no necesita un PTY local).

Cómo se usa

La autenticación tiene dos fases:

  1. Laravel emite en /asset/instances/ssh/session un tique firmado (nivel ≥ 2 · TTL de 20 s · auditado).
  2. El puente verifica el tique. En una instancia con password, el navegador transmite la contraseña en la primera trama WS (nunca se almacena); en una instancia con key, el puente usa la clave privada guardada (Crypt) o ~/.ssh/el agente.
xterm.js  ⇄  WebSocket  ⇄  ssh2 bridge  ⇄  remote sshd (PTY)

Fuentes de datos

Acceso

Nivel ≥ 2 + auditoría. En producción el puente se ejecuta supervisado, con wss y fijación de la clave de host.

Relacionado

카드의 [ssh] 버튼
카드의 [ssh] 버튼