ef712a79ee8def5fc5a1df86271cb3b42e5c331d
ci / test (push) Has been cancelled
ci / fuzz-smoke (push) Has been cancelled
ci / windows-client (push) Has been cancelled
ci / package-release (linux-x86_64, ubuntu-latest) (push) Has been cancelled
ci / package-release (macos-aarch64, macos-14) (push) Has been cancelled
ci / package-release (macos-x86_64, macos-13) (push) Has been cancelled
ci / package-release (windows-x86_64, windows-latest) (push) Has been cancelled
ci / remote-bench (push) Has been cancelled
Dosh
Dosh is an encrypted remote terminal for fast reconnecting shells. It is meant to replace Mosh and day-to-day interactive SSH sessions.
It runs a dosh-server on the remote machine and a dosh client locally. The
first setup can use SSH. After that, Dosh can attach over encrypted UDP with
cached credentials, keep terminal sessions alive, reconnect after network
changes, and forward TCP ports.
Support
- Client: macOS, Linux, Windows
- Server: Unix-like systems with PTYs
- Windows: client only
- UDP port: one configured server port, default
50000
Dosh is not an SCP/SFTP client and does not implement X11 forwarding. Windows is client-only.
Install
Server and client on Unix/macOS:
curl -fsSL https://git.palav.dev/Palav/dosh/raw/branch/main/install.sh | sh -s -- both --repo https://git.palav.dev/Palav/dosh.git --port 50000
Client only on Unix/macOS:
curl -fsSL https://git.palav.dev/Palav/dosh/raw/branch/main/install.sh | sh -s -- client --repo https://git.palav.dev/Palav/dosh.git
Windows client:
irm https://git.palav.dev/Palav/dosh/raw/branch/main/install.ps1 | iex
Commands
dosh setup HOST # import SSH config and trust the Dosh host key
dosh HOST # connect
dosh HOST COMMAND # connect and run a command
dosh update # update Dosh
dosh status HOST # show remote tmux sessions and Dosh service status
dosh restart HOST # restart dosh-server and show service status
dosh doctor HOST # check config and connectivity
dosh recover HOST # clear cached attach state and re-check
Examples:
dosh palav
dosh palav tm
dosh forward palav -L 8080:127.0.0.1:80
dosh forward palav -D 1080
dosh forward palav -R 2222:127.0.0.1:22
Agent forwarding is opt-in with -A and must be enabled on the server.
Config
~/.config/dosh/client.toml
~/.config/dosh/hosts.toml
~/.config/dosh/server.toml
Common client settings:
default_session = "new"
auth_preference = "native,ssh"
predict = true
cache_attach_tickets = true
disconnect_status = true
Description