Where the keys come from¶
You want to know where the servers get people’s public keys, and what a converge does when GitHub is down.
roles/ssh_key_fetch is the one place the
server downloads keys. operators, jump, server_user (and its verify) and
fixpi all use it (#161). It reads https://github.com/<user>.keys for a
gh:<user> id and never the rate-limited GitHub API. It reads Launchpad only
for lp: or bare ids, and none are fetched now. ssh-import-id is no longer
used.
Each download is retried ssh_key_fetch_retries (3) times,
ssh_key_fetch_delay (5) seconds apart, until it gets a 200 holding at least
one key line. After that the play fails at the download, naming the
account, the id, the URL and the answer. There is no fallback. So if GitHub is
down or returns nothing:
the converge stops at the first role that needs keys, and no
authorized_keysis written empty or from stale data;server_userfails before its exclusive write, soadminkeeps its current keys;for the Pi root it stops before the update lock is taken and before the image is extracted, so the fleet and its root are left as they were.
Re-run once GitHub answers again (Converging the change).