Make SSH keys publicly accessible

Merged Serena Fang requested to merge 235756-ssh-public-keys-no-longer-public-accessible into master

What does this MR do?

  • Reverts !35507 (merged).
    • !35507 (merged) moved get SSH keys from keys controller to user controller to reduce confusion between gpg keys and ssh keys, but since the User controller goes through the permission policy to read user, a non-logged in user would get redirected to the log in page if they tried to go to https://gitlab.example.com/username.keys
    • More in-depth discussion here: #235756 (comment 396156444)
  • Adds RSpecs to keys_controller_spec.rb to ensure that when signed out, user's SSH public keys are still gettable.

Screenshots

Incognito browser (so not signed in) still shows SSH keys: image

% curl http://127.0.0.1:3000/root.keys
ssh-rsa AAAA...gJw0= Administrator (127.0.0.1)% 

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Closes #235756 (closed)

Edited by Serena Fang