Gpg

如何導入秘密 gpg 密鑰(從一台機器複製到另一台機器)?

  • August 11, 2021

我正在嘗試將我的 gpg 密鑰從一台機器複製到另一台機器。

我願意:

gpg --export ${ID} > public.key
gpg --export-secret-key ${ID} > private.key

將文件移動到新機器,然後:

gpg --import public.key
gpg: nyckel [ID]: public key [Name, e-mail] was imported
gpg: Total number of treated keys: 1
gpg:                 imported: 1  (RSA: 1)

gpg --allow-secret-key-import private.key
sec  [?]/[ID] [Creation date] [Name, e-mail]
ssb  [?]/[SUB-ID] [Creation date]

在我看來一切都很好,但是:

$ gpg -d [file].gpg
gpg: encrypted with 4096-bit RSA-key, id [SUB-ID], created [Creation date]
 [Name, e-mail]
gpg: decryption failed: secret key not accessible

所以錯誤消息說該文件已被加密

$$ SUB-ID $$,密鑰導入似乎表明它已導入。(這$$ SUB-ID $$在兩條消息中是相同的)。 所以我顯然做錯了什麼,但我不知道是什麼。

您需要添加--import到命令行才能導入私鑰。你不需要使用--allow-secret-key-import標誌。根據手冊頁:“這是一個過時的選項,沒有在任何地方使用。”

gpg --import private.key

以上只是部分答案。完整的答案是:

gpg --import private.key
  • 給定輸出中的 KEYID(例如FA0339620046E260):
 gpg --edit-key {KEY} trust quit
 # enter 5<RETURN> (I trust ultimately)
 # enter y<RETURN> (Really set this key to ultimate trust - Yes)
  • 或者使用下面的自動命令:
 expect -c 'spawn gpg --edit-key {KEY} trust quit; send "5\ry\r"; expect eof'

最後,驗證密鑰現在是否受信任,[ultimate]而不是[unknown]

gpg --list-keys

引用自:https://unix.stackexchange.com/questions/184947