feat(ssh): auth-side SSH preflight - key presence, known_hosts with fingerprint steer, identity verification #296

Closed
opened 2026-07-20 14:46:39 +00:00 by hexajon · 0 comments
hexajon commented 2026-07-20 14:46:39 +00:00 (Migrated from codeberg.org)

Part of #187 (SSH-only mode epic). Depends on the protocol-mode slice.

An auth-side preflight for ssh mode that checks the pieces madtea does not manage: a usable key exists (agent-held or ~/.ssh), the forge host is present in known_hosts (with a fingerprint-verification steer on first contact - TOFU is the one place SSH is weaker than TLS, say so), and an ssh -T git@host-style probe verifies and NAMES the authenticated user. madtea still does not generate or manage keys; the preflight teaches, it does not fix.

Acceptance:

  • Runs as part of auth login when an ssh mode is chosen, and standalone (e.g. via whoami/status in ssh mode)
  • Each failed check produces a specific teaching message (no key found / host not in known_hosts + how to verify the fingerprint / auth probe failed) - never a bare ssh exit code
  • Success names the authenticated forge user from the probe output
  • The docs note plainly that madtea guards token storage but cannot guard a passphrase-less key file
  • No key generation, no known_hosts writes - read-and-teach only
Part of #187 (SSH-only mode epic). Depends on the protocol-mode slice. An `auth`-side preflight for ssh mode that checks the pieces madtea does not manage: a usable key exists (agent-held or `~/.ssh`), the forge host is present in `known_hosts` (with a fingerprint-verification steer on first contact - TOFU is the one place SSH is weaker than TLS, say so), and an `ssh -T git@host`-style probe verifies and NAMES the authenticated user. madtea still does not generate or manage keys; the preflight teaches, it does not fix. Acceptance: - [ ] Runs as part of `auth login` when an ssh mode is chosen, and standalone (e.g. via whoami/status in ssh mode) - [ ] Each failed check produces a specific teaching message (no key found / host not in known_hosts + how to verify the fingerprint / auth probe failed) - never a bare ssh exit code - [ ] Success names the authenticated forge user from the probe output - [ ] The docs note plainly that madtea guards token storage but cannot guard a passphrase-less key file - [ ] No key generation, no known_hosts writes - read-and-teach only
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sixfold-space/madtea#296
No description provided.