135

While trying to receive keys in my Debian Stretch server, I get this error:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
Executing: /tmp/apt-key-gpghome.4B7hWtn7Rm/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
gpg: failed to start the dirmngr '/usr/bin/dirmngr': No such file or directory
gpg: connecting dirmngr at '/tmp/apt-key-gpghome.4B7hWtn7Rm/S.dirmngr' failed: No such file or directory
gpg: keyserver receive failed: No dirmngr
  • See https://k6.io/docs/get-started/installation/troubleshooting/#error-importing-k6s-gpg-key; you can run sudo gpg -k and then try again – Frido Emans Nov 11 '22 at 16:34

3 Answers3

188

Installing the package dirmngr fixed the error.

user@debian-server:~$ sudo apt-get install dirmngr

Retrying :

user@debian-server:~$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
Executing: /tmp/apt-key-gpghome.haKuPppywi/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
gpg: key A6A19B38D3D831EF: public key "Xamarin Public Jenkins (auto-signing) <releng@xamarin.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
11

I wasn't able to get dirmngr to work, but you can also just import the key directly using apt-key add. The GPG public key is often listed at the root of the repo like http://origin-download.mono-project.com/repo/

curl https://origin-download.mono-project.com/repo/xamarin.gpg | sudo apt-key add -
Greg Bray
  • 399
  • 2
    You need to run dirmngr if it's not already running. – please delete me Oct 03 '18 at 19:54
  • dirmngr was running, but still no joy... If the keyserver happens to be keyserver.ubuntu.com then you can access via a browser and search for the public key using the --recv-keys parameter, then simply use apt-key add as per this answer – earcam Mar 18 '19 at 12:22
  • Following this answer, I managed to download a .asc file from keyserver.ubuntu.com, then to import it with sudo gpg --no-default-keyring --keyring /etc/apt/keyrings/<YOUR-APP>.gpg --import armored-keys.asc – Arnaud P Jan 11 '24 at 15:53
0

As said, the dirmngr package should be installed, but it may happen that apt does not work and cannot install any package. Don't worry. Search dirmngr package on https://packages.debian.org selecting your distribution version, download it on the linux machine and install it using dpkg command, for example:

cd /tmp
wget http://ftp.it.debian.org/debian/pool/main/g/gnupg2/dirmngr_2.1.18-8~deb9u4_amd64.deb
sudo dpkg -i dirmngr_2.1.18-8~deb9u4_amd64.deb

Then you'll be able to run apt-key command to fetch the missing keys.