web-dev-qa-db-ja.com

パスとgpg:公開鍵なし

pass をかなり長い間使用しています。しかし、キーストレージとgpgキーを別のマシンにエクスポートした後、次の出力が表示されます。

$ gpg --list-key
/home/shved/.gnupg/pubring.gpg
------------------------------
pub   2048R/FA829B53 2015-04-28
uid       [ultimate] Yury Shvedov (shved) <[email protected]>
sub   2048R/74270D4A 2015-04-28

私の鍵はインポートされ、信頼されていますが、使用できません:

pass insert test
Enter password for test: 
Retype password for test: 
gpg: 2048R/FA829B53: skipped: No public key
gpg: [stdin]: encryption failed: No public key
fatal: pathspec '/home/shved/.password-store/test.gpg' did not match any files

キーをもう一度使用するにはどうすればよいですか?

13
shved

pass はgnupg2を使用します。これは、キーリングをgnupg 1.xと共有しません。

Gnupgの代わりにgnupg2を使用してキーを再度インポートします。ターゲットマシンのgnupgにすでにキーがある場合は、次のコマンドを実行します。

$ gpg --export-secret-keys > keyfile
$ gpg2 --import keyfile

インポート後、キーの信頼を更新する必要がある場合があります。 Secret key is available.インポートが成功した場合のメッセージ:

$ gpg2 --edit-key FA829B53
[...]
Secret key is available.

sec  rsa4096/FA829B53
     created: 2015-03-14  expires: 2017-03-13  usage: SC  
     trust: unknown      validity: ultimate
ssb  rsa4096/74270D4A
     created: 2015-03-14  expires: 2017-03-13  usage: E   
[ultimate] (1). Yury Shvedov (shved) <[email protected]>

次に、キーの信頼を更新します。

gpg> trust
[...]
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
[...]
gpg> save
12
Łukasz Lis

出力ライン

gpg: 2048R/FA829B53: skipped: No public key

誤ったpass初期化を示しています。コマンドpass init 2048R/FA829B53passを初期化しましたが、コマンドpass init FA829B53で初期化する必要があります。この問題を解決するには、ファイル~/.password-store/.gpg-idの内容を2048R/FA829B53からFA829B53に変更し、変更をコミットする必要があります。

PS

@ŁukaszLisのアドバイスはすべて正しいので、あなたもそれらを完了する必要があります。それ以外の場合は、パスを復号化できません。

$ pass -c test

エラーが発生します:gpg: decryption failed: No secret key

7
Andriy

信頼できるキーがファイル~/.password-store/.gpg-idで同じかどうかを確認します

0
m3asmi

新しいストアを作成し、「2048R/FA829B53」のようなキーIDで初期化したときにこれに気づきました。これは、過去に行われた方法であると考えていました。古いバックアップを見ると、.gpg_idが異なります。

ただし、現在はFA829B53のみが使用されているようで、現在のマニュアルページでは、作成者は自分のメールアドレスを使用しています。

私はgpg_idファイルをチェックします、私にとって新鮮な店ではそれはFA829B53だけで他の行はありません

0
Buckshee