Yubikey4 and gpg-agent: Difference between revisions
Browse history interactively
Revision as of 23:35, 9 February 2016 (view source)
Cdentinger (talk | contribs)
(caution and formatting)
← Older edit
Latest revision as of 05:54, 27 February 2016 (view source)
BryanDavis (talk | contribs)
(Added Category:How-To)
 
(One intermediate revision by one other user not shown)
Line 12:Line 12:
export SSH_AUTH_SOCKexport SSH_AUTH_SOCK


{{Caution|No longer works in GnuPG 2.1+ due to [https://www.gnupg.org/faq/whats-new-in-2.1.html#autostart this] change.}}{{Caution|Does not work in GnuPG 2.1+ due to [https://www.gnupg.org/faq/whats-new-in-2.1.html#autostart this] change.}}


== Generate an authentication key ==== Generate an authentication key ==
Line 23:Line 23:


I found that despite being generated on the Yubikey the authentication private key remained on my local keychain. Removing it did not affect ssh behavior.I found that despite being generated on the Yubikey the authentication private key remained on my local keychain. Removing it did not affect ssh behavior.

[[Category:How-To]]
Latest revision as of 05:54, 27 February 2016
Using the Yubikey4 for ssh key generation and storage as well as one-time-password generation. There are a ton of guides to a ton of subtly different methods of doing basically this, I mean only to provide a simple explanation of what worked for me.
Use gpg-agent instead of ssh-agent
Disable ssh-agent if it is running. Use the script provided here which is essentially keychain but for gpg-agent. I put it in .bashrc rather than .xsession:
if test -f $XDG_RUNTIME_DIR/gpg-agent-info && kill -0 $(head -n 1 $XDG_RUNTIME_DIR/gpg-agent-info | cut -d: -f2) 2>/dev/null ; then eval $(< $XDG_RUNTIME_DIR/gpg-agent-info) else eval $(gpg-agent --daemon --enable-ssh-support --write-env-file $XDG_RUNTIME_DIR/gpg-agent-info) fi export GPG_AGENT_INFO export SSH_AUTH_SOCK
Caution:
Does not work in GnuPG 2.1+ due to this change.
Generate an authentication key
I used the method described here to generate the authentication subkey on the Yubikey itself:
$ gpg2 --edit-key YOURKEY gpg> addcardkey
Select authentication, provide expiry, create the key, and save. gpg2 -K should show the new key, and gpgkey2ssh AUTHKEY should provide a version for suitable authorized_keys. First access of the key will present a box for the PIN. After that PIN-less access and OTP generation should work until it is unplugged. I did not have to install any smart card related utilities for this to work as expected.
I found that despite being generated on the Yubikey the authentication private key remained on my local keychain. Removing it did not affect ssh behavior.
Last edited on 27 February 2016, at 05:54
Wikitech
Content is available under CC BY-SA 3.0 unless otherwise noted.
Privacy policy
Terms of Use
Desktop
HomeRandomLog inDonateAbout WikitechDisclaimers
WatchEdit