SSブログ

【雑記】 apt-getの公開鍵エラー [PCトラブル]

293411070.jpg

ただ殴られたオタのほうが途中で「オレが一番愛してるんだよ!!」って言ってたのはちょっと笑った

@Lunamaria




今回は Linuxの IT技術の話題なので
難しい話になるため一般の方はスルー推奨です。

Linuxには色々なディストリビューションがあるので
色々な派閥があります。

その中でも2強なのが
・Ubuntu系
・Fedora系
だと思います。

(今回は Desktop OSに話を絞りますので、 Server OSは対象外です)

この2つはアプリケーションパッケージ管理の仕方も違います。
・Ubuntu - apt - deb
・Fedora - yum - rpm
といった具合です。

(厳密に言うと両刀使いも可能だったりしますが、今回は割愛します)

私は会社で Ubuntu Linuxを Desktop OSとして使っているのですが
ある日、apt-get updateでパッチ当てをしようと思ったらエラーが発生しました。
エラーメッセージはこんな感じ。

# apt-get update
W: GPG error: http://www.debian-multimedia.org sid Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 07DC563D1F41B907
W: これらの問題を解決するためには apt-get update を実行する必要があるかもしれません

ネットで調べてみたら、公開鍵が古くなっているので
鍵サーバから取得し直す必要があるとのこと。

その方法も生のコマンドで書かれてあったので
これは簡単に解決すると思いました。

# gpg --keyserver pgp.nic.ad.jp --recv-keys 07DC563D1F41B907

ところが、このコマンドを流しても server connection time out errorになってしまいます。
コマンドが通らない・・・。

gpgコマンドが用いるポート番号を調べてみると 11371とかかなり高い方でした。
きっとポートが閉じられているので接続に失敗したのでしょう。

さて、この環境だと gpgコマンドでダイレクトに通信できません。
そこで考えたのが、http通信でキーを取得して apt-keyに登録するという2段構えの方法です。
やり方はこんな感じ。

wget -q http://ubuntuce.com/repos/Ubuntu_CE/apt/crosswire-launchpad-ppa.asc -O- | apt-key add -
wget -q "http://pgp.es.net/pks/lookup?op=get&search=0xB5D0C804ADB11277" -O- | apt-key add -

1番目は .ascファイルをダウソしてそのまま流し込んでいます。
この方法だと鍵コードに対応する鍵ファイルの名前を突き止めなければなりません。

一方、2番目の方法は鍵コードをそのまま検索クエリとして APIに投げています。
対応する鍵文字列をそのままhttp通信で得られるので apt-keyに流し込めます。

鍵の検索は
http://pgp.es.net/
でGUIを通じて行うことも出来ます。

自然文字列やコード値で検索できます。
検索したらこんな感じ。

http://pgp.es.net/pks/lookup?op=index&search=ppa.launchpad.net
http://pgp.es.net/pks/lookup?op=get&search=0x2B62C92207A80241

最後に、調査中に便利だったサイトをご紹介します。
gpgコマンドの通信の裏側や鍵サーバの一覧は役に立つかと。

http://www.cla-ri.net/pgp/faq.html
http://www.cla-ri.net/pgp/servers.html

ある鍵を探しに行ったときに、その鍵を持っているサーバと
持っていないサーバがあるので総ざらいする事態になるかも・・・。

nice!(11)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 11

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。