You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3c79d5c
Browse filesBrowse the repository at this point in the historyBrowse files
-`./install.sh uninstall` — remove all symlinks and installed files
39
37
40
-
The web UI requires Python 3. Dependencies are installed automatically in a virtual environment on first run of `ssh-ui`.
38
+
The installer performs **no network fetches**: all web-UI assets (xterm.js) are vendored in the repo under `lib/ui/vendor/` with SHA-384 hashes recorded in `SHA384SUMS` and verified by `scripts/check vendor`.
39
+
40
+
The web UI requires Python 3. Dependencies are installed automatically in a virtual environment on first run of `ssh-ui` (this dependency goes away in refactor Phase 1 — see [REFACTOR.md](REFACTOR.md)).
41
41
42
42
## Quick Start
43
43
@@ -81,9 +81,9 @@ Enables deprecated algorithms (DSA, RSA-SHA1, CBC ciphers) only for that specifi
81
81
|`ssh-del`| Remove keys for a user. Cleans up the host identity if no users remain. |
|`ssh-template`| Manage key templates (standard, hardware, or OpenPubKey). |
84
-
|`ssh-rotate`|Rotate host keys when a server's host key changes. |
84
+
|`ssh-rotate`|*Disabled* — the shipped implementation was broken; rebuilt in refactor Phase 5. |
85
85
|`ssh-user-rotate`| Rotate a user's keypair for a specific host. |
86
-
|`ssh-template-rotate`|Rotate keys within a template (ed25519, ecdsa, or rsa). |
86
+
|`ssh-template-rotate`|*Disabled* — the shipped implementation was broken; rebuilt in refactor Phase 5. |
87
87
|`ssh-backup`| Create an encrypted archive of the key store. |
88
88
|`ssh-restore`| Restore keys from a backup archive. |
89
89
|`ssh-history`| View the operations log. |
@@ -102,10 +102,10 @@ Starts a local web server on a random port (localhost only). A URL with a one-ti
102
102
Features:
103
103
104
104
-**Dashboard** — overview of all host identities, their users, and keys. Connect, rotate, or delete directly from the browser.
105
-
-**Templates** — create and manage key templates. Hardware key enrollment and opkssh login run in an embedded terminal (xterm.js over websockets).
105
+
-**Templates** — create and manage key templates.
106
106
-**History** — searchable log of all operations.
107
107
108
-
The terminal integration handles interactive workflows (YubiKey touch prompts, OIDC browser login for opkssh) that would otherwise require the CLI.
108
+
The embedded xterm.js terminal (hardware key enrollment, opkssh login flows) is **temporarily disabled**: socket.io-client is no longer shipped, and the terminal returns in refactor Phase 1 on a hand-rolled WebSocket ([REFACTOR.md](REFACTOR.md)). Interactive flows fall back to plain form submissions or the CLI until then.
109
109
110
110
## Architecture
111
111
@@ -163,6 +163,14 @@ The `--legacy` flag injects deprecated algorithms only into the specific host's
-`generate-opk` integrates with OpenPubKey via opkssh. `ssh-new` validates certificates and triggers `opkssh login` (with optional issuer) when sessions expire, verifying the credential was updated before connecting.
165
165
166
+
## Development
167
+
168
+
Design and threat model live in [ARCHITECTURE.md](ARCHITECTURE.md); the phased refactor plan in [REFACTOR.md](REFACTOR.md).
169
+
170
+
-`scripts/check` — run all local validation (or a stage: `syntax`, `lint`, `vendor`, `tests`, `secrets`). CI runs exactly this script.
171
+
-`scripts/install-hooks` — opt-in pre-push hook that runs `scripts/check`.
172
+
-`scripts/vendor-update` — the only sanctioned way to bump vendored JS: fetches pinned versions, cross-checks two CDNs byte-for-byte, rewrites `lib/ui/vendor/SHA384SUMS`. See `lib/ui/vendor/PROVENANCE`.
0 commit comments