2010年02月26日

proxyを使ったPPAリポジトリの追加

ubuntuを使っていて、正規ではないリポジトリ(アプリケーションリスト)を登録すると、そのリポジトリの正当性を証明する公開鍵も追加しなければらない。 でないと、apt-get updateでインストール済みパッケージの更新チェックをしたとき、そのリポジトリを信頼できないために以下のようなエラーがでる。

W: GPG error: http://ppa.launchpad.net karmic Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 608BF7B93528AE20

それを解決する方法は、以下のようにいろいろある。

  1. smash smartly : PPAリポジトリを追加するには
  2. lamolog : aptでGPG errorが出たときの対処方法
  3. SEにはなりたくない情報系の大学生 : 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY
  4. Life is a Gamble : sudo apt-get update時にエラーメッセージが出る

仕組みは、GPGという暗号および鍵管理ソフトが、外部のキーサーバから該当する公開鍵を転送してきて、自分のキーリングに登録する。その公開鍵をaptコマンドのキーリングにも追加してやるようだ。
しかしながら、キーサーバに公開鍵を取りにいく際、GPGコマンドはTCPの11371ポートを使う。
NAT装置などでそこがフィルタリングされていると、キーサーバに接続できません、とエラーになってしまう。

公開鍵の登録は、apt-keyコマンドでやれば一発なのだが、proxyを指定する機能がない。
apt-keyが呼び出しているGPGなら、proxyを指定できるので、その方法で行う。 下の例では、proxyのIPアドレスを10.11.12.13で、8080ポートとしている。

公開鍵の取得
$ gpg --keyserver keyserver.ubuntu.com --keyserver-option http-proxy=10.11.12.13:8080 --recv-keys 608BF7B93528AE20
gpg: 鍵3528AE20をhkpからサーバーkeyserver.ubuntu.comに要求
gpg: 鍵3528AE20: 公開鍵“Launchpad Docky Development PPA”を読み込みました
gpg: 処理数の合計: 1
gpg: 読込み: 1 (RSA: 1)

公開鍵の確認
$ gpg --fingerprint 608BF7B93528AE20
pub 1024R/3528AE20 2009-11-09 指紋 = 53BD 7760 A5A0 9E78 FC86 49D9 608B F7B9 3528 AE20
uid Launchpad Docky Development PPA

gpgからaptへexport
$ gpg --armor --export 608BF7B93528AE20 | sudo apt-key add -
OK

これで、apt-get updateをしても、エラーにならない。



sylphide_ffr31mr at 16:54コメント(2)トラックバック(0)技術  

トラックバックURL

コメント一覧

1. Posted by 秘密の常連   2010年12月01日 15:49
5 毎度毎度apt-keyする度にここにお世話になってます。m(__)m
いつもやったことあるはずだよなぁ~、どっかで見たよなぁ~。な感じで辿り着く。
proxyなんて無い方が良いんだけど…。
2. Posted by やすき   2010年12月02日 18:29
コメントありがとうございます。
いやー、嬉しいです。
これからも、日々是勉強ですね。

コメントする

名前
 
  絵文字
 
 
記事検索
最新コメント
プロフィール

やすき

月別アーカイブ
  • ライブドアブログ