73 lines
2.7 KiB
Markdown
73 lines
2.7 KiB
Markdown
# sshkeeper v0.5.0 — Persistent SSH Sessions
|
|
|
|
v0.5.0 adds an optional multi-session workflow backed by `tmux`. It lets
|
|
sshkeeper keep several interactive SSH connections alive in one terminal
|
|
workspace without turning sshkeeper itself into a terminal emulator.
|
|
|
|
`tmux` is intentionally optional. If it is not available, Sessions are not
|
|
shown anywhere in the TUI and ordinary Connect/Tunnel workflows behave exactly
|
|
as they did in v0.4.1.
|
|
|
|
## Persistent sessions
|
|
|
|
When `tmux` is available in `PATH`:
|
|
|
|
- **Server Actions → Open in session** opens the selected server in a persistent
|
|
tmux window;
|
|
- **Manage → Sessions** lists SSH windows created by sshkeeper;
|
|
- `Enter` attaches to the selected session;
|
|
- `Ctrl+D` closes it after confirmation;
|
|
- `Ctrl+R` refreshes the list.
|
|
|
|
If sshkeeper runs outside tmux, it uses a dedicated tmux workspace named
|
|
`sshkeeper`. If it is already running inside tmux, new SSH windows are created
|
|
inside the current tmux session rather than starting a nested client.
|
|
## Vault and authentication
|
|
|
|
Sessions continue to use the existing sshkeeper/OpenSSH connection planner,
|
|
including routes, bastions, identity files and startup commands.
|
|
|
|
Key and SSH-agent sessions do not need a vault unlock. Password and
|
|
key-passphrase sessions ask for the vault master password inside their own tmux
|
|
window. Secrets are not copied through command-line arguments, environment
|
|
variables or temporary shell scripts.
|
|
|
|
## Platform behavior
|
|
|
|
Linux and macOS support Sessions when `tmux` is installed. On macOS it can be
|
|
installed with Homebrew using `brew install tmux`.
|
|
|
|
Native Windows builds keep Sessions hidden because upstream tmux is not a native
|
|
Windows backend for this workflow. Windows users can use Sessions by running the
|
|
Linux build inside WSL with tmux installed there.
|
|
|
|
Linux native packages do **not** require tmux. Package metadata keeps OpenSSH as
|
|
the hard dependency and marks tmux only as `Recommends`, so the application
|
|
remains fully usable without the Sessions feature.
|
|
## Validation
|
|
|
|
The release is covered by normal unit tests plus a real tmux lifecycle test that
|
|
creates a temporary workspace/window, verifies sshkeeper can discover its
|
|
metadata, closes it, and confirms it disappears.
|
|
|
|
The release gate also runs `go vet`, Linux package migration tests and release
|
|
cross-builds for Linux amd64/arm64, macOS amd64/arm64 and Windows amd64. GitHub
|
|
CI additionally runs the test suite natively on both Ubuntu and macOS.
|
|
|
|
## Install
|
|
|
|
Debian/Ubuntu (amd64):
|
|
|
|
```bash
|
|
sudo apt install ./sshkeeper_0.5.0-1_amd64.deb
|
|
```
|
|
|
|
Fedora/RHEL-family (x86_64):
|
|
|
|
```bash
|
|
sudo dnf install ./sshkeeper-0.5.0-1.x86_64.rpm
|
|
```
|
|
|
|
ARM64 packages and tar/zip archives are published alongside them. Verify
|
|
downloads against `checksums.txt`.
|