Fragments of verbose memory

冗長な記憶の断片 - Web技術のメモをほぼ毎日更新(準備中)

Feb 5, 2023 - コメント - 日記

GnuPG キーの有効期限延長の方法

GnuPG は、暗号化、署名、認証に使用するための公開鍵暗号システムです。GnuPGでは、公開鍵には有効期限が設定されており、その期間が過ぎるとその鍵は使用できなくなります。有効期限が近づいている場合や、期限切れになっている場合は、その鍵を延長する必要があります。この記事では、GnuPGでキーの有効期限を延長する方法について説明します。

GnuPGで公開鍵の有効期限を確認するには、以下のコマンドを使用します。

$ gpg --list-secret-keys

/home/alice/.gnupg/pubring.gpg
------------------------------
sec   rsa2048 2017-06-22 [SC] [expires: 2023-10-19]
      1234567890ABCDEF1234567890ABCDEF12345678
uid           [ultimate] Alice <alice@example.com>
ssb   rsa2048 2017-06-22 [E] [expires: 2023-10-19]

[expires: 2023-10-19]とあるので2023年10月19日までこの鍵は有効です。 ここで、1234567890ABCDEF1234567890ABCDEF12345678が鍵のIDです。 鍵の有効期限を変更してみます。

鍵の有効期限の変更

キーの編集は以下のコマンドを使用します。

$ gpg --edit-key 1234567890ABCDEF1234567890ABCDEF12345678
gpg (GnuPG) 2.4.0; Copyright (C) 2021 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

gpg: checking the trustdb
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   6  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 6u
gpg: next trustdb check due at 2023-11-29
sec  rsa2048/1234567890ABCDEF
     created: 2017-06-22  expires: 2024-01-29  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/1234567890ABCDEF
     created: 2017-06-22  expires: 2023-10-19  usage: E
[ultimate] (1). Alice <alice@example.com>

gpg>

GnuPGの対話式インターフェイスが始まりgpg>プロンプトが出現します。 有効期限を延長するためのオプションを選択します。

gpg> expire

Changing expiration time for the primary key.
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 

ここで新しい有効期限(現在からの有効期間)を入力します。試しに1y(1年)を入力します。

Key is valid for? (0) 1y
Key expires at Mon Jan 29 15:11:03 2024 +07
Is this correct? (y/N) 

有効期限を確認してy(Yes)を入力します。パスフレーズを聞かれるので入力します。

Is this correct? (y/N) y
sec  rsa2048/1234567890ABCDEF
     created: 2017-06-22  expires: 2024-01-29  usage: SC
     trust: ultimate      validity: ultimate
ssb  rsa2048/1234567890ABCDEF
     created: 2017-06-22  expires: 2023-10-19  usage: E
[ultimate] (1). Alice <alice@example.com>

最後に変更を保存します。

gpg> save

これで、有効期限が延長され、変更が保存されました。


GnuPGの用途によりますが、公開鍵をキーサーバに登録して暗号メッセージを受け取るような人でなければ有効期限の設定は必要ないかもしれません。有効期限を設定しない場合は、上の記事中で有効期間を0 (key does not expire)と選択します。