Add public comparison benchmarks and SSH import
ci / test (push) Has been cancelled
ci / remote-bench (push) Has been cancelled

This commit is contained in:
DuProcess
2026-06-12 14:27:58 -04:00
parent 063c44d971
commit 3a38a9da80
8 changed files with 422 additions and 28 deletions
+24 -3
View File
@@ -134,9 +134,10 @@ dosh --session logs palav
Press `Ctrl-]` to detach the current client while leaving the server session alive.
Typing `exit` in the remote shell closes that Dosh session and returns the client.
If UDP packets stop arriving, Dosh shows a blue status bar at the top of the
terminal with the disconnected duration and sends keepalive pings until traffic
returns.
If UDP packets stop arriving, Dosh keeps the terminal open, sends keepalive pings,
and attempts ticket-based reconnect. The old in-band status overlay was removed
because writing directly over the terminal could corrupt TUIs; a non-destructive
status surface is tracked as a public-readiness item.
If SSH and UDP use different public names, specify the UDP address:
@@ -144,6 +145,15 @@ If SSH and UDP use different public names, specify the UDP address:
dosh-client --dosh-host public.example.com --dosh-port 50000 user@host
```
Dosh already lets OpenSSH handle SSH aliases, users, keys, ports, known-hosts,
ProxyJump, and other SSH config during bootstrap. It also runs `ssh -G` to infer the
UDP host from an SSH alias when `dosh_host` is not configured. To make that explicit
in Dosh's host config:
```bash
dosh import-ssh palav homelab
```
## Develop
Build:
@@ -184,6 +194,17 @@ and ControlMaster-backed SSH bootstrap against a containerized `sshd` plus resid
make bench-docker-ssh
```
Run the same Docker comparison with Mosh installed in the benchmark container:
```bash
make bench-docker-mosh
```
That prints `ssh_true_ms`, `dosh_attach_ms`, and `mosh_start_true_ms` under the same
container, key, DNS, and network path. See `docs/PUBLIC_READINESS.md` before using
the numbers publicly; Dosh's current strongest claim is fast attach/reconnect, not
full Mosh feature parity yet.
The CI workflow includes an optional remote benchmark job. It runs when
`DOSH_BENCH_HOST`, `DOSH_BENCH_USER`, and `DOSH_BENCH_SSH_KEY` repository secrets are
configured.