The default way to copy your ssh key(s) to a remote server is to use the ssh-copy-id command. This will create a secure connection to the remote server over SSH and then check if the user exists, create the folder&files if needed and add your keys. Works, Easy, Simple.
My problem is, that often I’m already in the shell and I logged in with some password combination, that I would need to enter a second time to copy my ids. Also I don’t always have all my keys on one machine. As I often get asked by my colleagues, what my SSH keys are, there is a nifty trick you can do, instead of sending them over via E-Mail.
Github allows to get your public SSH keys with only your username: https://github.com/<username>.keys
So with a little bit of magic we can utilize this and run the following command on an existing SSH connection to create a new authorized_keys file and download our keys from Github to the file.
curl https://github.com/kordianbruck.keys > ~/.ssh/authorized_keys
Easy!
You can always use >> instead to append your keys. This can also be used in automated docker builds, where you have a SSH server running inside your container (which you probably shouldn’t ;D).