Mar 01, 2020 github: using ssh keys. Generating public/private key pair, uploading public key to github. This is a tutorial on how to: set up your CSIL account (or alternatively, your Mac, Windows or Linux computer) with an ssh public/private key pair. If you don't have an existing public and private key pair, or don't wish to use any that are available to connect to GitHub, then generate a new SSH key. If you see an existing public and private key pair listed (for example idrsa.pub and idrsa) that you would like to use to connect to GitHub, you can add your SSH key to the ssh-agent.
I largely followed Florin's blog post, but have a few notes to add regarding issues I encountered:
gpg-agent only automatically starts when gpg is used; for ssh, you'll need to ensure it's running.list command inside gpg --edit-card, look for the Key attributes line to see what is currently selected. On my YubiKey 4, it defaulted to 2048 bits for all keys:These correspond to the signature key, encryption key, and authentication key. (I believe only the authentication key is used for ssh.)
Running the key-attr admin subcommand lets you change these:
(Note that the OpenPGP applet only works with RSA, not ECC, so don't choose that.)
ssh-add -L may not initially show anything:This is because gpg-agent changed how it works a few years ago, removing some options such as write-env-file (per this comment, which Florin's instructions use.
To get gpg-agent and ssh-agent to work together, you can use a simplified /.gnupg/gpg-agent.conf:
and then kill any running gpg-agent process so that it picks up the new configuration.
You can use the Windows 10 Enterprise or Pro version if you want your organization’s windows. Ssl windows 10 key generator.
Since the .gpg-agent-info file is no longer created by gpg-agent, you must also change your .bash_profile to use the GPG agent ssh socket directly. I also added a line here to ensure that the gpg-agent is running:
(This is taken from @drduh's YubiKey guide.)
After updating this, launch a new shell, and ssh-add -L should now show you your public key, and you can follow the rest of the directions provided.
I wanted to require a touch any time I tried to use my YubiKey for ssh authentication to prevent rogue processes from using the key while it's plugged in.
You can use the YubiKey Manager CLI to require this; I installed it via Homebrew.
After installed, use the ykman openpgp touch subcommand to configure the touch settings:
(Again, you control the three keys separately.)
I attempted to add my SSH public key to my GitHub account and came across this perplexing error:
Key is weak. GitHub recommends using ssh-keygen to generate a RSA key of at least 2048 bits.
Org.apollo.util.tools.rsa key generator free. I'd initially used a 2048-bit RSA key, so using the key-attr subcommand I described above, I tried generating a 4096-bit key, but GitHub gave the same error message.
After some searching, I came across this issue. Basically, due to a security issue in certain versions of the YubiKey 4 (4.2.6-4.3.4), GitHub rejects keys generated on these YubiKeys as weak. There are basically two workarounds:
@drduh's YubiKey Guide is a great reference, going into even more detail and best practices.