← Back to context

Comment by dotwaffle

5 days ago

That's the point, though. An SSH key gives authentication, not authorization. Generally a certificate is a key signed by some other mutually trusted authority, which SSH explicitly tried to avoid.

SSH does support certificate based auth, and it’s a great upgrade to grant yourself if you are responsible for a multi human single user system. It grants revocation, short lifetime, and identity metadata for auditing, all with vanilla tooling that doesn’t impose things on the target system.

  • > multi human single user system

    A rather niche use-case to promote certificate auth... I'd add the killer-app feature is not having to manage authorized_keys.

    • They are remarkably common in long lived enterprise Linux servers. Think eg database servers or web servers where they are of the (much longer lived) pet era not cattle era.

      Not sure why you need to belittle one example just to add another

Agreed, this makes sense in principle.

But what I found, empirically, is that a substantial number of observable SSH public keys are (re)used in way that allows a likely-unintended and unwanted determination of the owner's identities.

This consequence was likely not foreseen when SSH pubkey authentication was first developed 20-30 years ago. Certainly, the use and observability of a massive number of SSH keys on just a single servers (ssh git@github.com) wasn't foreseen.

You can also sign ssh host keys with an ssh ca.

See ssh_config and ssh-keygen man-pages...