馃泝 Use "fast SSH lookups" as default git/ssh auth mechanism
## Problem to solve The default mechanism by which users are authorized is currently `authorized keys`. This mechanism is not scalable, and is vulnerable to race conditions, and out-of-order execution issues. It also necessitates a shared filesystem for most deployments of more than one machine (we don't use it on GitLab.com) ## Further details `authorized keys` has the advantage of working "out of the box" with omnibus - the user doesn't have to modify `sshd_config` for their machine when installing the omnibus package. However, the fact that we don't use it ourselves means that it's quite easy for a breakage in it to get through to production: https://gitlab.com/gitlab-org/gitlab/-/issues/212178 . That it works out of the box *also* means that instances continue using it long past the time when they should have switched to the second mechanism. ## Proposal Change the default `authorized keys` to `fast lookups` as the default mechanism for git/ssh auth. With "Fast lookup of SSH keys" (documented here: https://docs.gitlab.com/ee/administration/operations/fast_ssh_key_lookup.html), sshd is configured (via 2 lines in `/etc/ssh/sshd_config`) to call a binary which does an API lookup against GitLab.com to look up keys. This requires no integration with the `authorized_keys` file and is generally preferable. It's the mechanism we use on GitLab.com. ## Relevant tasks for deprecation/removal - [ ] announce our intent to deprecate/remove `authorized keys` in 14.0 (announcement to being in 13.0 release post) - [ ] update documentation with deprecation/removal - [ ] update installation process (post install onboarding wizard to prompt user to enable SSH, Git protocol v2)
epic