Hello.
Keyboxd broke my pipeline for verification of artifacts.
I've been using a Gitlab-CI pipeline where I'd import gpg keys present in git and verify downloaded arfifact against them. I do not need a gpg agent for that and so I use --no-autostart option.
The approach worked until my base image change with upgrade of gpg. So it works with gpg (GnuPG) 2.2.40 but not with gpg (GnuPG) 2.4.3.
The version automagicaly creates gnupg config with keyboxd set if the gnupg homedir does not exist as I found in this commit
I made a workaround in my pipeline forcing empty gnupg config using:
mkdir ~/.gnupg touch ~/.gnupg/common.conf
Finally I think this looks like issue with keyboxd that does not work properly with --no-autostart option as I got I/O error
Bellow find the log output of command gpg --no-autostart --import keys/tomcat-logback.keys
gpg (GnuPG) 2.4.3 libgcrypt 1.10.2 Copyright (C) 2023 g10 Code GmbH License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Home: /root/.gnupg Supported algorithms: Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, CAMELLIA192, CAMELLIA256 Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224 Compression: Uncompressed, ZIP, ZLIB, BZIP2 gpg: enabled debug flags: packet filter cache memstat trust extprog gpg: enabled compatibility flags: gpg: directory '/root/.gnupg' created gpg: DBG: armor-filter: control: 1 gpg: DBG: armor-filter: control: 3 gpg: armor header: Comment: Hostname: gpg: armor header: Version: Hockeypuck 2.1.0-222-g25248d4 gpg: DBG: parse_packet(iob=1): type=6 length=269 (new_ctb) (parse.import.c.968) gpg: DBG: parse_packet(iob=1): type=13 length=51 (new_ctb) (parse.import.c.968) gpg: DBG: parse_packet(iob=1): type=2 length=312 (new_ctb) (parse.import.c.968) gpg: DBG: parse_packet(iob=1): type=14 length=269 (new_ctb) (parse.import.c.968) gpg: DBG: parse_packet(iob=1): type=2 length=287 (new_ctb) (parse.import.c.968) gpg: DBG: armor-filter: control: 3 gpg: DBG: armor-filter: control: 2 gpg: pub rsa2048/EEA8F6DF3031CD02 2017-11-07 Jeremy Landis (hazendaz) <jeremylandis@hotmail.com> gpg: DBG: public key EEA8F6DF3031CD02: timestamp: 2017-11-07 02:01:52 (1510020112) gpg: DBG: user id: Jeremy Landis (hazendaz) <jeremylandis@hotmail.com> gpg: DBG: sig: class: 0x13, issuer: EEA8F6DF3031CD02, timestamp: 2017-11-07 02:01:52 (1510020112), digest: 34 da gpg: DBG: Good signature over last key or uid! gpg: DBG: subkey 27CCC583A83210AD: timestamp: 2017-11-07 02:01:52 (1510020112) gpg: DBG: sig: class: 0x18, issuer: EEA8F6DF3031CD02, timestamp: 2017-11-07 02:01:52 (1510020112), digest: 0f 69 gpg: DBG: Good signature over last key or uid! gpg: no keyboxd running in this session gpg: error opening key DB: No Keybox daemon running gpg: key EEA8F6DF3031CD02: public key not found: I/O error gpg: error reading 'keys/tomcat-logback.keys': I/O error gpg: import from 'keys/tomcat-logback.keys' failed: I/O error gpg: Total number processed: 0 gpg: keydb: handles=0 locks=0 parse=0 get=0 gpg: build=0 update=0 insert=0 delete=0 gpg: reset=0 found=0 not=0 cache=0 not=0 gpg: kid_not_found_cache: count=0 peak=0 flushes=0 gpg: sig_cache: total=4 cached=2 good=2 bad=0 gpg: objcache: keys=0/0/0 chains=0,0..0 buckets=0/0 attic=0 gpg: objcache: uids=0/0/0 chains=0,0..0 buckets=0/0 gpg: random usage: poolsize=600 mixed=0 polls=0/0 added=0/0 outmix=0 getlvl1=0/0 getlvl2=0/0 gpg: rndjent stat: collector=0x0000000000000000 calls=0 bytes=0 gpg: secmem usage: 0/32768 bytes in 0 blocks