Add authorized TCP pipe forwarding

This commit is contained in:
Eric Wendland 2026-05-21 01:12:01 +02:00
commit 6bc2666993
8 changed files with 645 additions and 81 deletions

View file

@ -179,8 +179,12 @@ Roadmap items should be actionable and checkable:
resource before creating a daemon-lifetime listener on the peer. `geth pipe
send <name> [message|--in <path>|--in -] --node <node-id>` carries a byte
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 pipe recv <name>` drains local daemon-lifetime messages. `geth pipe
forward-tcp --listen 127.0.0.1:<port> --node <node-id> --target
127.0.0.1:<port>` opens authorized bidirectional byte streams over
`/geth/pipe/1`; the remote daemon requires `pipe.forward` on
`resource:pipe-tcp:<target>` before connecting to the loopback target. Unix
socket forwarding is still roadmap work.
- `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