Stream SSH proxy over Iroh

This commit is contained in:
Eric Wendland 2026-05-21 01:03:38 +02:00
commit 87d8801d71
7 changed files with 366 additions and 23 deletions

View file

@ -181,10 +181,11 @@ Roadmap items should be actionable and checkable:
message over the dedicated `/geth/pipe/1` ALPN when `pipe.connect` is authorized, and
`geth pipe recv <name>` drains local daemon-lifetime messages. Long-lived
bidirectional streams and TCP/Unix forwarding are still roadmap work.
- `geth ssh proxy <node-id>` performs an authorized control-plane handshake over
the protected Iroh control ALPN and requires `ssh_proxy.connect` on
`resource:ssh-proxy:local` before returning proxy metadata. It does not carry
SSH bytes or connect to sshd/admin shell yet.
- `geth ssh proxy <node-id>` is a streaming OpenSSH ProxyCommand-style path. The
CLI streams through the local daemon, the daemon uses `/geth/ssh-proxy/1` over
Iroh, the remote daemon requires `ssh_proxy.connect` on
`resource:ssh-proxy:local`, and only then connects to `127.0.0.1:22`. SSH is
still not a geth transport backend.
- Resource secret epoch metadata can be created, rotated, and listed locally.
Bearer access metadata can be created/listed/revoked as resource-scoped auth
ops and must not allow trust graph mutation capabilities. Bearer