Gpg

導入 gpg 私鑰 - 不會導入

  • June 6, 2018

我正在將密鑰從一台機器轉移到另一台機器並執行以下操作:

在機器 A 上:

% gpg --export-secret-key -a [username] > my_private.key

Please enter the passphrase to export the OpenPGP secret key:
"[username and other data like email]"
2048-bit RSA key, ID [removed-ID],
created 2015-11-09.

Passphrase:

在這裡,當我輸入已知的正確密碼時出現錯誤:

*** Bad Passphrase (try 2 of 3) ***

Please enter the passphrase to export the OpenPGP secret key:
"[username and other data like email]"
2048-bit RSA key, ID [removed-ID],
created 2015-11-09.

Passphrase:

所以我也做了我發現在解密過程中作為一種解決方法的方法:只需按enter

gpg: key [removed-ID]: error receiving key from agent: No passphrase given - skipped
Please enter the passphrase to export the OpenPGP secret subkey:
"[username and other data like email]"
2048-bit RSA key, ID [removed-sub-ID],
created 2015-11-09 (main key ID [removed-ID]).

Passphrase:

這一次它可以工作 - 在解密時和它“工作”(不拋出錯誤)以導出密鑰。

現在我my_private.key在機器 A 上。

我將文件 SFTP 到機器 B - 我省略了細節,因為我認為這不是問題所在……

在機器 B 上:

$ gpg --import my_private.key
gpg: Total number processed: 0
$

注意:它說“0已處理”。為什麼?可以肯定的是,我可以這樣做:

$ gpg --list-secret-keys
$

我究竟做錯了什麼?

筆記

這裡可能有2個問題:

  1. 為什麼正確的密碼只有在通過第一個“主密鑰”後才有效?
  2. 為什麼導出的密鑰不會導入?

更新:

在建議嘗試過時的選項--allow-secret-key-import後,我嘗試了它並得到以下結果:

$ gpg --allow-secret-key-import my_private.key
gpg: subkey w/o mainkey
gpg: standalone signature of class 0x18
gpg: Signature made Mon 09 Nov 2015 11:26:17 AM EST using RSA key ID [removed-ID]
gpg: invalid root packet for sigclass 18
gpg: Can't check signature: Invalid signature class

我發布的更新中的嘗試提示我,這裡實際上有 2 個(私人)密鑰在起作用:一個主密鑰和一個子密鑰。它們是不同的。這篇文章幫助我進一步了解了這個事實:https ://wiki.debian.org/Subkeys

我仍然不知道我是如何進入主密碼與子密鑰不同的訪問密碼的狀態,但顯然這就是為什麼跳過主密碼並為子密鑰使用更改後的密碼的原因。

幸運的是,我仍然擁有我認為我不久前更改過的主人的密碼。使用它,我能夠導出密鑰​​、移動它並成功導入。

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