Sync SSH & GPG keys from GitHub

I use GitHub as the single source of truth for all valid keys associated with myself and my servers. GitHub makes the keys I’ve made public available at these endpoints:

  • https://api.github.com/users/<user>/keys
  • https://api.github.com/users/<user>/gpg_keys

Some other apps (such as chezmoi) can hook into this data to keep themselves up-to-date when I add or remove a key. This is nice because it avoids leaving an expired key in the wild if I do not remember all places my keys are stored.

My actual feature request is: I would like to be able to add a “key source” in omg.lol, enter my GitHub username, and have it automatically poll the API endpoints referenced above to import and store keys from that account. Then when an item is added or removed to my GitHub key list, it will automatically be synced to my omg.lol profile page.

I totally understand if this is too specific to GitHub. I could implement my own push-based system if you have an API endpoint for adding keys, but if that breaks I’m back to my original concern of leaving expired keys in the wild.

1 Like

This is a cool idea! Will try to work on it soon — stay tuned!

2 Likes