feat(brahman-ssh-multiplex): A6 — sesión SSH multiplexada (russh)
Envuelve russh 0.54 con una API mínima: una SshSession mantiene el Handle maestro; cada exec() concurrente abre su propio canal en paralelo sobre la misma conexión TCP (SSH multiplexa canales por diseño del protocolo). - SshConfig (host/port/user/auth/keepalive) + SshAuth (Password | Key). - SshSession::connect — config russh + keepalive + auth password o clave privada en disco; verificación de host key TOFU por default. - SshSession::exec — corre un comando en un canal nuevo, junta stdout/stderr/exit_code. - SshSession es Clone barato (comparte el Handle). Base de sandokan RemoteEngine y del Linker SSH de matilda. Compila contra russh 0.54. El test de conexión real requiere un servidor SSH (fuera del unit test). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -14,6 +14,7 @@ members = [
|
||||
"crates/protocol/brahman-net",
|
||||
"crates/protocol/brahman-dht",
|
||||
"crates/protocol/brahman-card-discovery",
|
||||
"crates/protocol/brahman-ssh-multiplex",
|
||||
"crates/protocol/arje-card",
|
||||
|
||||
# ============================================================
|
||||
@@ -263,6 +264,9 @@ libp2p = { version = "0.56", features = ["tokio", "tcp", "noise", "yamux", "macr
|
||||
libp2p-stream = "=0.4.0-alpha"
|
||||
libp2p-allow-block-list = "0.6"
|
||||
|
||||
# === SSH (brahman-ssh-multiplex, sandokan RemoteEngine, matilda) ===
|
||||
russh = "0.54"
|
||||
|
||||
# === Code parsing (minga) ===
|
||||
tree-sitter = "0.24"
|
||||
tree-sitter-rust = "0.23"
|
||||
|
||||
Reference in New Issue
Block a user