No gpg key from behind a firewall

Just stumbled over this closed thread here: GPG Error while running apt-get

Same problem here, Ubuntu 12.04 behind a firewall and proxy.

I dont think that matter is duplicate of the given topic. So i reopen this matter in this thread.

My output:

root@musik-Aspire-7741:~# apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 58B98E87
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-  keyring /tmp/tmp.tWVMhyIMYh --trustdb-name /etc/apt/trustdb.gpg --keyring     /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver     hkp://keyserver.ubuntu.com:80 --recv-keys 58B98E87
gpg: Key 58B98E87 of hkp Server keyserver.ubuntu.com request
?: keyserver.ubuntu.com: Connection refused
gpgkeys: HTTP fetch error 7: couldn't connect: Connection refused
gpg: No valid OpenPGP data found.
gpg: Total number processed: 0

Conclusion: gpg is not working with hkp://keyserver.ubuntu.com:80 via http.


Behind proxy, environment variable http_proxy should be set. This can be done in either of the two ways.

1.Create apt.conf file in /etc/apt directory if not present and add the following line to it. Acquire::http::Proxy "http://user:password@server:port";
2.Simply set the environment variable using the following command from terminal.
export http_proxy=http://user:password@server:port

Finally a small tweak, add -E option to the command for the environment variables to be used as follows
sudo -E apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 58B98E87


If you're behind a proxy, then you must set the http_proxy enviroment variable in Bash. The best way to do it is to open the root shell with sudo bash.

After this:

export http_proxy="http://xxx.yyy.zzz.www:abcd"

Then add the repo.


I have spent almost two days for this to install the latest version of MongoDB. But I was facing the same issue as shown below:

$ apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10

Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.pvb8fwe4Rs --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d//nsa-keyring.gpg --keyserver keyserver.ubuntu.com --recv 7F0CEB10
gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
gpg: keyserver timed out
gpg: keyserver receive failed: keyserver error

At last I installed mongoDB with the help of steps shared by "ellore".

  1. Added http and https proxy in apt.conf file.
  2. Added the env variables using export http and https command.
  3. Added "-E" in the command line:

     sudo -E apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
    

Then I got the below response:

gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
gpg: key 7F0CEB10: "Richard Kreuter <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

And I have successfully installed MongoDB 3.0.7 as shown below,

$ mongo --version
MongoDB shell version: 3.0.7