try this:

gpg -k --with-subkey-fingerprint --with-keygrip avemilia
take a note of the keygrip of your authentication key [A]

echo your-[A]-keygrip > ~/.gnupg/sshcontrol
gpgconf --reload all



On 22.08.2020 19:09, Ave Milia via Gnupg-users wrote:
> What I want: Yubikey contains GPG subkeys. Master key is elsewhere. SSH is 
> controlled by GPG agent. SSH key from Yubikey is automatically enrolled and 
> used for connection to git remote. And it "just works". It's been two weeks 
> that I can't get to that point, so I decided to ask for help here.
> 
> The most depressing fact is sometimes it works, and the other time it 
> doesn't. And I never know why. And I don't know how to fix it.
> 
> Current problem: ssh-add -L returns "Error connecting to agent: No such file 
> or directory".
> 
> I have followed [0] to generate and load GPG keys into Yubikey. It didn't 
> work well (I don't remember what exactly was failing, there has been a 
> million issues at this point and I don't know what I'm doing anymore), so I 
> started to dig deeper and tried information from [1] [2] [3]. The result of 
> it is that I can do a git pull once and it works, then I do another git pull 
> and it doesn't.
> 
> What I have tried: relogging, launching new terminal, gpgconf --reload all, 
> systemctl restart pcscd, Yubikey replug. Everything alone and everything 
> together.
> 
> ❯ inxi -Sz
> System:    Kernel: 5.7.14-1-MANJARO x86_64 bits: 64 Desktop: i3 4.18.2 
> Distro: Manjaro Linux
> 
> 
> ❯ ykman info
> Device type: YubiKey 4
> Serial number: XXXXXXX
> Firmware version: 4.3.5
> Enabled USB interfaces: OTP+FIDO+CCID
> 
> Applications
> OTP           Enabled
> FIDO U2F      Enabled
> OpenPGP       Enabled
> PIV           Enabled
> OATH          Enabled
> FIDO2         Not available
> 
> 
> ❯ ykman openpgp info
> OpenPGP version: 2.1
> Application version: 4.3.5
> 
> PIN tries remaining: 10
> Reset code tries remaining: 0
> Admin PIN tries remaining: 10
> 
> Touch policies
> Signature key           On
> Encryption key          On
> Authentication key      On
> 
> 
> ❯ gpg --version
> gpg (GnuPG) 2.2.21
> libgcrypt 1.8.6
> 
> 
> ❯ gpg -K
> /home/ave/.gnupg/pubring.kbx
> ----------------------------
> sec#  rsa4096/0xF971F82552850CEC 2020-08-11 [C]
>       Key fingerprint = 3A3F 8B8B 7A45 77FE D7C8  A955 F971 F825 5285 0CEC
> uid                   [ultimate] Ave Milia <avemi...@protonmail.com>
> ssb>  rsa4096/0xXXXXXXXXXXXXXXXX 2020-08-11 [S]
> ssb>  rsa4096/0xXXXXXXXXXXXXXXXX 2020-08-11 [E]
> ssb>  rsa4096/0xXXXXXXXXXXXXXXXX 2020-08-11 [A]
> 
> 
> ❯ gpg --card-status
> Reader ...........: Yubico YubiKey OTP FIDO CCID 00 00
> Application ID ...: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
> Application type .: OpenPGP
> Version ..........: 2.1
> Manufacturer .....: Yubico
> Serial number ....: XXXXXXX
> Name of cardholder: Ave Milia
> Language prefs ...: en
> Salutation .......: Mr.
> URL of public key : 
> https://keys.openpgp.org/vks/v1/by-fingerprint/3A3F8B8B7A4577FED7C8A955F971F82552850CEC
> Login data .......: [not set]
> Signature PIN ....: not forced
> Key attributes ...: rsa4096 rsa4096 rsa4096
> Max. PIN lengths .: 127 127 127
> PIN retry counter : 10 0 10
> Signature counter : 5
> Signature key ....: XXXX XXXX XXXX XXXX XXXX  XXXX XXXX XXXX XXXX XXXX
>       created ....: 2020-08-11 20:13:49
> Encryption key....: XXXX XXXX XXXX XXXX XXXX  XXXX XXXX XXXX XXXX XXXX
>       created ....: 2020-08-11 20:14:37
> Authentication key: XXXX XXXX XXXX XXXX XXXX  XXXX XXXX XXXX XXXX XXXX
>       created ....: 2020-08-11 20:15:07
> General key info..: sub  rsa4096/0xXXXXXXXXXXXXXXXX 2020-08-11 Ave Milia 
> <avemi...@protonmail.com>
> sec#  rsa4096/0xF971F82552850CEC  created: 2020-08-11  expires: never
> ssb>  rsa4096/0xXXXXXXXXXXXXXXXX  created: 2020-08-11  expires: never
>                                   card-no: XXXX XXXXXXXX
> ssb>  rsa4096/0xXXXXXXXXXXXXXXXX  created: 2020-08-11  expires: never
>                                   card-no: XXXX XXXXXXXX
> ssb>  rsa4096/0xXXXXXXXXXXXXXXXX  created: 2020-08-11  expires: never
>                                   card-no: XXXX XXXXXXXX
> 
> 
> ❯ gpgconf --list-dirs
> sysconfdir:/etc/gnupg
> bindir:/usr/bin
> libexecdir:/usr/lib/gnupg
> libdir:/usr/lib/gnupg
> datadir:/usr/share/gnupg
> localedir:/usr/share/locale
> socketdir:/run/user/1000/gnupg
> dirmngr-socket:/run/user/1000/gnupg/S.dirmngr
> agent-ssh-socket:/run/user/1000/gnupg/S.gpg-agent.ssh
> agent-extra-socket:/run/user/1000/gnupg/S.gpg-agent.extra
> agent-browser-socket:/run/user/1000/gnupg/S.gpg-agent.browser
> agent-socket:/run/user/1000/gnupg/S.gpg-agent
> homedir:/home/ave/.gnupg
> 
> 
> ❯ grep -v "^#" .gnupg/gpg.conf
> personal-cipher-preferences AES256 AES192 AES
> personal-digest-preferences SHA512 SHA384 SHA256
> personal-compress-preferences ZLIB BZIP2 ZIP Uncompressed
> default-preference-list SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP 
> Uncompressed
> cert-digest-algo SHA512
> s2k-digest-algo SHA512
> s2k-cipher-algo AES256
> charset utf-8
> fixed-list-mode
> no-comments
> no-emit-version
> no-greeting
> keyid-format 0xlong
> list-options show-uid-validity
> verify-options show-uid-validity
> with-fingerprint
> require-cross-certification
> no-symkey-cache
> use-agent
> throw-keyids
> keyserver hkps://hkps.pool.sks-keyservers.net
> 
> 
> ❯ grep -v "^#" .gnupg/gpg-agent.conf
> enable-ssh-support
> default-cache-ttl 60
> max-cache-ttl 120
> pinentry-program /usr/bin/pinentry-curses
> 
> 
> ❯ grep -v "^#" .gnupg/scdaemon.conf
> pcsc-driver /usr/lib/libpcsclite.so
> card-timeout 5
> disable-ccid
> 
> 
> ❯ ll /usr/lib/libpcsclite.so
> lrwxrwxrwx 1 root root 20 19. čen 21.40 /usr/lib/libpcsclite.so -> 
> libpcsclite.so.1.0.0
> 
> 
> ❯ sudo systemctl status pcscd.service
> ● pcscd.service - PC/SC Smart Card Daemon
>      Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; vendor 
> preset: disabled)
>      Active: active (running) since Sat 2020-08-22 17:47:28 CEST; 50s ago
> TriggeredBy: ● pcscd.socket
>        Docs: man:pcscd(8)
>    Main PID: 54997 (pcscd)
>       Tasks: 5 (limit: 19134)
>      Memory: 1.8M
>      CGroup: /system.slice/pcscd.service
>              └─54997 /usr/bin/pcscd --foreground --auto-exit
> 
> srp 22 17:47:28 ave-pc systemd[1]: Started PC/SC Smart Card Daemon.
> srp 22 17:47:28 ave-pc pcscd[54997]: 00000000 
> ifdhandler.c:150:CreateChannelByNameOrChannel() failed
> srp 22 17:47:28 ave-pc pcscd[54997]: 00000069 
> readerfactory.c:1105:RFInitializeReader() Open Port 0x200000 Failed 
> (usb:1050/0407:libudev:0:/dev/bus/usb/003/011)
> srp 22 17:47:28 ave-pc pcscd[54997]: 00000002 
> readerfactory.c:376:RFAddReader() Yubico YubiKey OTP+FIDO+CCID init failed.
> srp 22 17:47:28 ave-pc pcscd[54997]: 00007224 
> ifdhandler.c:150:CreateChannelByNameOrChannel() failed
> srp 22 17:47:28 ave-pc pcscd[54997]: 00000016 
> readerfactory.c:1105:RFInitializeReader() Open Port 0x200000 Failed 
> (usb:1050/0407:libudev:1:/dev/bus/usb/003/011)
> srp 22 17:47:28 ave-pc pcscd[54997]: 00000002 
> readerfactory.c:376:RFAddReader() Yubico YubiKey OTP+FIDO+CCID init failed.
> 
> ^^^ Despite pcscd errors, in my experience this is orthogonal to whether 
> Yubikey/GPG/SSH is in the mood for working correctly.
> 
> 
> ❯ cat /etc/opensc.conf
> app default {
>       # Yubikey is known to have the PIV applet and the OpenPGP applet. OpenSC
>       # can handle both to access keys and certificates, but only one at a 
> time.
>       card_atr 3b:f8:13:00:00:81:31:fe:15:59:75:62:69:6b:65:79:34:d4 {
>               name = "Yubikey 4";
>               # Select the PKI applet to use ("PIV-II" or "openpgp")
>               driver = "openpgp";
>               # Recover from other applications accessing a different applet
>               flags = "keep_alive";
>       }
> }
> 
> 
> ❯ cat /usr/share/p11-kit/modules/opensc.module
> module: opensc-pkcs11.so
> 
> 
> ❯ p11tool --list-tokens
> Token 0:
>       URL: 
> pkcs11:model=p11-kit-trust;manufacturer=PKCS%2311%20Kit;serial=1;token=System%20Trust
>       Label: System Trust
>       Type: Trust module
>       Flags: uPIN uninitialized
>       Manufacturer: PKCS#11 Kit
>       Model: p11-kit-trust
>       Serial: 1
>       Module: p11-kit-trust.so
> 
> 
> Token 1:
>       URL: 
> pkcs11:model=p11-kit-trust;manufacturer=PKCS%2311%20Kit;serial=1;token=Default%20Trust
>       Label: Default Trust
>       Type: Trust module
>       Flags: uPIN uninitialized
>       Manufacturer: PKCS#11 Kit
>       Model: p11-kit-trust
>       Serial: 1
>       Module: p11-kit-trust.so
> 
> 
> Token 2:
>       URL: 
> pkcs11:model=PKCS%2315%20emulated;manufacturer=Yubico;serial=XXXXXXXXXXXX;token=OpenPGP%20card%20%28User%20PIN%29%00%00%00%00%00%00%00%00%00
>       Label: OpenPGP card (User PIN)
>       Type: Hardware token
>       Flags: Requires login
>       Manufacturer: Yubico
>       Model: PKCS#15 emulated
>       Serial: XXXXXXXXXXXX
>       Module: opensc-pkcs11.so
> 
> 
> Token 3:
>       URL: 
> pkcs11:model=PKCS%2315%20emulated;manufacturer=Yubico;serial=XXXXXXXXXXXX;token=OpenPGP%20card%20%28User%20PIN%20%28sig%29%29%00%00%00
>       Label: OpenPGP card (User PIN (sig))
>       Type: Hardware token
>       Flags: Requires login
>       Manufacturer: Yubico
>       Model: PKCS#15 emulated
>       Serial: XXXXXXXXXXXX
>       Module: opensc-pkcs11.so
> 
> 
> ❯ pkcs11-tool -O --login
> Using slot 0 with a present token (0x0)
> Logging in to "OpenPGP card (User PIN)".
> Please enter User PIN:
> Private Key Object; RSA
>   label:      Encryption key
>   ID:         02
>   Usage:      decrypt, unwrap
>   Access:     sensitive, always sensitive, never extractable, local
> Public Key Object; RSA 4096 bits
>   label:      Encryption key
>   ID:         02
>   Usage:      encrypt, wrap
>   Access:     none
> Private Key Object; RSA
>   label:      Authentication key
>   ID:         03
>   Usage:      decrypt, sign, non-repudiation, unwrap
>   Access:     sensitive, always sensitive, never extractable, local
> Public Key Object; RSA 4096 bits
>   label:      Authentication key
>   ID:         03
>   Usage:      encrypt, verify, wrap
>   Access:     none
> 
> 
> ❯ Relevant part from .zshrc
> unset SSH_AGENT_PID
> if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
>   export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
> fi
> export GPG_TTY=$(tty)
> gpg-connect-agent updatestartuptty /bye >/dev/null
> 
> 
> ❯ ssh-add -L
> Error connecting to agent: No such file or directory
> 
> ^^^ Should give: ssh-rsa [...] cardno:XXXXXXXXXXXX
> 
> 
> 
> So, any ideas which tambourine should I pick this time?
> 
> 
> [0] <https://github.com/drduh/YubiKey-Guide>
> [1] <https://wiki.archlinux.org/index.php/GnuPG#SSH_agent>
> [2] <https://wiki.archlinux.org/index.php/GnuPG#Smartcards>
> [3] <https://wiki.archlinux.org/index.php/Smartcards>
> 
> _______________________________________________
> Gnupg-users mailing list
> Gnupg-users@gnupg.org
> http://lists.gnupg.org/mailman/listinfo/gnupg-users
> 

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Gnupg-users mailing list
Gnupg-users@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gnupg-users

Reply via email to