1.4 KiB
ADR 0014: SSH Certificate Flows And Revocation Lists
Status
Accepted.
Decision
Geth manages OpenSSH certificate request, renewal, approval, import, and revocation-list metadata.
A node may request a user or host certificate by submitting its public key,
principals, requested validity, and optional renewal target. An authorized
machine can approve that request. Approval does not silently sign inside the
daemon; it returns an explicit ssh-keygen -s ... command that can be run on the
machine with the CA private key or YubiKey-backed CA key. The resulting
-cert.pub file is imported back into geth for distribution.
Certificate and key revocations are durable records. The bootstrap stores and exports them as JSONL. Future work may derive OpenSSH KRL files and replicate signed revocation lists over Iroh.
Consequences
SSH certificate lifecycle management becomes part of the SSH trust integration layer without making SSH a geth transport. The daemon can coordinate requests and distribution while the CA/YubiKey machine remains the explicit signing point.
Future authorization should protect capabilities such as:
ssh_cert.requestssh_cert.approvessh_cert.importssh_revocation.publishssh_revocation.read
The current bootstrap does not claim that revocation reaches offline nodes immediately. Revocation distribution is eventual until stronger synchronization and policy enforcement are implemented.