Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm using Ubuntu 9.10, and need to add some apt repositories. Unfortunately, I get messages like this when running sudo apt-get update:

W: GPG error: karmic Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5A9BF3BB4E5E17B5
W: GPG error: karmic Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1DABDBB4CEC06767

So, I need to install the keys for these repositories. Under 9.10 we now have the option to do this:

sudo add-apt-repository ppa:nvidia-vdpau/ppa

See this Ubuntu help article for details.

This is great, except that I'm running this on a workstation behind a firewall which blocks outbound connections to pretty much all ports except those required by secretaries running Windows and IE.

The port in question here is the hkp service, port 11371.

There appear to be ways to manually download keys and install them on apt's keyring. There may even be a way to use add-apt-repository or wget or something to download a key from an alternative server making it available on port 80.

However, I haven't yet found a concise set of steps for doing so. What I'm looking for is:

  1. How to find a public key for an apt-package (recommendations for resources which have these, and/or tips for searching. Searching for the key hash doesn't seem all that effective so far.)
  2. How to retrieve a key (can it be done automatically using gpg or add-apt-repository?)
  3. How to add a key to apt's keyring

Thanks in advance.

share|improve this question

This has been fixed in the upcoming Natty version of Ubuntu:

Those using an older version need to edit

sudo gedit /usr/lib/python2.6/dist-packages/softwareproperties/

Where it says:

change to:


Save, exit, then you're hopefully good to go.

share|improve this answer
Awesome - solved my problem! – Fedearne Jun 23 '11 at 10:59
On 10.10, rather than editing this source file I could simply call sudo apt-key adv --keyserver hkp:// --recv-keys KEY_HASH – l0b0 Nov 24 '11 at 15:19
hkp:// works on 10.04 as well. – bd808 Jan 30 '12 at 18:21
+1 for use --keyserver hkp:// – rogeriolino Oct 1 '15 at 14:55
sudo apt-key adv --keyserver --keyserver-options http-proxy=http://proxy:port --recv-keys KEYID
share|improve this answer
Thanks Gareth :) – Sandeep Apr 5 '13 at 12:35
Thanks I was looking for the http-proxy option. – OliverS Dec 11 '13 at 8:32

Here's one workaround I used:

I logged onto a linux server out in the free world beyond our corporate firewall, and did this:

gpg --keyserver --recv 1DABDBB4CEC06767 && gpg --export --armor 1DABDBB4CEC06767

Then on my workstation, I ran this, and pasted the output from the above command (the public key) into the stdin, followed by control-D:

sudo apt-key add -

Then I was able to run sudo apt-get update without problems.

I still think there has to be a better way, ideally something I could script.

share|improve this answer
"I logged onto a linux server out in the free world" It's not very likely one is able to do this in case even hkp is blocked. – gertvdijk May 13 '13 at 13:20

I have another workaround here which might be handy if you can't find another linux server outside your network as proxy. Just send an email to "" like subject as "get 0x1DABDBB4CEC06767". But you probably still can't write a simple script to automate this.

share|improve this answer

I found a neat way of doing it in a single command through port 80 which is always open for www traffic.

share|improve this answer
apt-key adv --keyserver hkp:// --recv-keys ... – vorburger May 8 '14 at 8:19
Hello and welcome to superuser. When answering questions, please respond to the question with the solution in the reply itself. There is no guarantee that the site you referred to will keep the site up and if it goes down, then your answer will be worthless. – Mogget Oct 1 '15 at 12:40

You could go to the web site of the keyserver, e.g. Search for the key signature (you need to add 0x to the hex signature) i.e. 0x1DABDBB4CEC06767.

Click on the link you'll hopefully get and paste the text into a file on the machine, i.e.

cat > <filename>




apt-key add <filename>

This worked fine for me; it appears my work proxy blocks a lot of "non-standard" ports.

share|improve this answer

I simply use ssh to forward the port to an external host then run the apt-add-repo command.

ssh -fqTnN -D 11371 <user@host>
share|improve this answer

I had the same issue with gpg. The workaround with adding the port to the server name worked by editing my ~/.gnupg/gpg.conf file. However, I'm still going to ask our sysadmin to open outbound port 11371, so I don't have to worry about this again.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .