Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use SSH certificate authorities to manage sysadmin access #6

Open
dalcde opened this issue Oct 1, 2020 · 0 comments
Open

Use SSH certificate authorities to manage sysadmin access #6

dalcde opened this issue Oct 1, 2020 · 0 comments
Labels
triage This issue needs triaging

Comments

@dalcde
Copy link

dalcde commented Oct 1, 2020

Problem to be solved

This is a proposed solution to #4.

Solution details

We set up an SSH Certificate Authority that signs system administrators' keys.
The certificate would indicate who the key can login as and an expiry time. The
authority would broadcast the CA's public key and a list of revoked keys via
https, which other VMs periodically poll and use to update the local sshd
config. It could also broadcast a list of valid sysadmins so that the other VMs
can automatically create local accounts.

See this Facebook engineering
post

for some implementation details.

Pros and cons

Pros

  • This does not depend on being on a secure network, since the public keys are
    broadcast via https.

  • There is no single point of failure, since the CA key is stored locally.
    There is, however, still a single point of trust.

  • To revoke keys (or users), we only have to do it on the CA's machine which
    is then broadcast to all other servers.

  • Since certificates have an expiry, the keys have to be periodicially
    re-signed. This lets us keep track of inactive sysadmins (who would also
    lose direct access) for better security.

  • Host keys can be signed too

Cons

  • This is only supported by OpenSSH; it is not supported by PuTTY or JucieSSH

Unsolved questions

What is the workflow for signing sysadmins' keys?

@dalcde dalcde added the triage This issue needs triaging label Oct 1, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage This issue needs triaging
Projects
None yet
Development

No branches or pull requests

1 participant