On a docker project where i had to add gnupg keys i always got an error keyserver receive failed: Connection refused
.
After a while of troubleshooting, i realized it’s not a connection or DNS problem.
But that the Dirmngr did not use the configured DNS servers of the system.
gpg --keyserver ipv4.pool.sks-keyservers.net --recv-keys "3D06A59ECE730EB71B511C17CE752F178259BD92"
gpg: keyserver receive failed: Connection refused
This option forces the use of the system’s standard DNS resolver code.
echo standard-resolver >> $HOME/.gnupg/dirmngr.conf;
If you have already try to recive keys, you need to kill the dirmngr with pkill dirmngr
.
We can now retrieve keys again:
gpg --keyserver ipv4.pool.sks-keyservers.net --recv-keys "3D06A59ECE730EB71B511C17CE752F178259BD92"
gpg: key CE752F178259BD92: 51 signatures not checked due to missing keys
gpg: key CE752F178259BD92: public key "Isaac Bennetch <bennetch@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
Dockerfile example
FROM alpine
RUN apk add --no-cache gnupg
RUN mkdir $HOME/.gnupg; \
chmod 700 $HOME/.gnupg; \
echo standard-resolver >> $HOME/.gnupg/dirmngr.conf;
RUN gpg --keyserver ipv4.pool.sks-keyservers.net --recv-keys "3D06A59ECE730EB71B511C17CE752F178259BD92"