sshkeeper: v0.2.0 — Phase 6: README update (not-Ansible, route/forward examples, hotkeys)
This commit is contained in:
parent
98492799ea
commit
87f0d90f7b
72
README.md
72
README.md
|
|
@ -5,6 +5,14 @@ OpenSSH launches. It does not replace OpenSSH; it keeps connection metadata in a
|
||||||
local SQLite database, keeps passwords/passphrases in an encrypted vault, and
|
local SQLite database, keeps passwords/passphrases in an encrypted vault, and
|
||||||
starts the system `ssh` client with the right options.
|
starts the system `ssh` client with the right options.
|
||||||
|
|
||||||
|
## sshkeeper is not Ansible
|
||||||
|
|
||||||
|
sshkeeper does not configure servers, push files, or manage infrastructure.
|
||||||
|
It is an SSH connection manager: it remembers how to reach your servers
|
||||||
|
(bastions, jump chains, port forwards) and launches the system `ssh` client.
|
||||||
|
Think of it as a smart `~/.ssh/config` with a TUI, encrypted secrets, and
|
||||||
|
port forwarding management.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Bubble Tea TUI for daily interactive use.
|
- Bubble Tea TUI for daily interactive use.
|
||||||
|
|
@ -13,6 +21,9 @@ starts the system `ssh` client with the right options.
|
||||||
- Password and key-passphrase auth through a PTY prompt handler, without putting
|
- Password and key-passphrase auth through a PTY prompt handler, without putting
|
||||||
secrets in command-line arguments.
|
secrets in command-line arguments.
|
||||||
- Key, SSH-agent, password, and key+passphrase auth modes.
|
- Key, SSH-agent, password, and key+passphrase auth modes.
|
||||||
|
- **Routes / ProxyJump** — manage bastion hosts and jump chains with human-readable display.
|
||||||
|
- **Port forwarding** — local, remote, and dynamic (SOCKS) forwards with OpenSSH preview.
|
||||||
|
- **Tunnel mode** — `ssh -N` for forward-only sessions.
|
||||||
- Groups, tags, command templates, search, and OpenSSH config generation.
|
- Groups, tags, command templates, search, and OpenSSH config generation.
|
||||||
- Import from `~/.ssh/config`.
|
- Import from `~/.ssh/config`.
|
||||||
|
|
||||||
|
|
@ -91,6 +102,58 @@ sshkeeper edit web --tags prod,web --startup-command "tmux attach -t ops"
|
||||||
# OpenSSH config
|
# OpenSSH config
|
||||||
sshkeeper ssh-config generate
|
sshkeeper ssh-config generate
|
||||||
sshkeeper ssh-config install-include
|
sshkeeper ssh-config install-include
|
||||||
|
|
||||||
|
## Routes, Tunnels, and Port Forwards
|
||||||
|
|
||||||
|
### Jump host (single bastion)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sshkeeper route set web --jumps bastion
|
||||||
|
sshkeeper route show web
|
||||||
|
# Route: bastion → web@10.0.0.10:22
|
||||||
|
# Mode: via
|
||||||
|
# ProxyJump: bastion
|
||||||
|
```
|
||||||
|
|
||||||
|
### Jump chain (multiple hops)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sshkeeper route set prod --jumps bastion,dmz-gw
|
||||||
|
sshkeeper route show prod
|
||||||
|
# Route: bastion → dmz-gw → prod@10.0.0.20:22
|
||||||
|
# Mode: chain
|
||||||
|
# ProxyJump: bastion,dmz-gw
|
||||||
|
```
|
||||||
|
|
||||||
|
### Local port forward
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sshkeeper forward add web --type local --local-port 8080 --remote-addr internal.web --remote-port 80
|
||||||
|
sshkeeper forward list web
|
||||||
|
# [1] -L 0.0.0.0:8080:internal.web:80
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dynamic SOCKS proxy
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sshkeeper forward add bastion --type dynamic --local-port 1080
|
||||||
|
sshkeeper forward list bastion
|
||||||
|
# [1] -D 0.0.0.0:1080
|
||||||
|
```
|
||||||
|
|
||||||
|
### Forward-only tunnel (ssh -N)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sshkeeper tunnel web --forward-only
|
||||||
|
# Starting tunnel to web with 1 forward(s)...
|
||||||
|
# Tunnel mode (ssh -N). Press Ctrl+C to exit.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Session with forwards
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sshkeeper tunnel web
|
||||||
|
# Starts SSH session with all configured forwards active.
|
||||||
```
|
```
|
||||||
|
|
||||||
Commands that only read profile metadata, such as `list`, `show`, `search`,
|
Commands that only read profile metadata, such as `list`, `show`, `search`,
|
||||||
|
|
@ -120,6 +183,12 @@ Running `sshkeeper` without arguments opens the TUI.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
### Route and Forwarding
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
| Key | Action |
|
| Key | Action |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| Enter | Connect to selected server |
|
| Enter | Connect to selected server |
|
||||||
|
|
@ -132,6 +201,9 @@ Running `sshkeeper` without arguments opens the TUI.
|
||||||
| Ctrl+F | Search |
|
| Ctrl+F | Search |
|
||||||
| Ctrl+G | Manage tags |
|
| Ctrl+G | Manage tags |
|
||||||
| Ctrl+P | Manage global command templates |
|
| Ctrl+P | Manage global command templates |
|
||||||
|
| Ctrl+W | Manage port forwards for selected server |
|
||||||
|
| ? / F1 | Full help screen |
|
||||||
|
| Ctrl+X | Action menu (delete, test, tags, vault) |
|
||||||
| Ctrl+Q / Ctrl+C | Quit |
|
| Ctrl+Q / Ctrl+C | Quit |
|
||||||
|
|
||||||
Templates are global entities and can run on any server. Foreground template
|
Templates are global entities and can run on any server. Foreground template
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue