パスとgpg:公開鍵なし


13

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

$ gpg --list-key
/home/shved/.gnupg/pubring.gpg
------------------------------
pub   2048R/FA829B53 2015-04-28
uid       [ultimate] Yury Shvedov (shved) <shved@lvk.cs.msu.su>
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

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

回答:


12

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) <shved@lvk.cs.msu.su>

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

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

pass(少なくともバージョン1.6.3)はgpgnotを使用しgpg2ます。そして、gpg2は単なる再設計です。バージョン2.1でのみ、いくつかの変更が行われました(公開鍵リングでの公開鍵と秘密鍵の組み合わせ)
Anthon

これは私のバージョン(1.6.5)には当てはまりません。ソースコードから:10 GPG = "gpg" 11 export GPG_TTY = "$ {GPG_TTY:-$(tty 2> / dev / null)}" 12 which gpg2&> / dev / null && GPG = "gpg2" 13 [ [-n $ GPG_AGENT_INFO || $ GPG == "gpg2"]] && GPG_OPTS + =( "--batch" "--use-agent")これは、gpg2が同じシステムに存在しない限り、「パス」がgpgを使用することを意味します。
ルカシュLisの

1
したがって、gpg2がインストールされていない限り、gpgを使用します。パスの目的でこれらは互換性があります。そうでない場合、パスの使用を開始した後しばらくしてgpg2をインストールすると、恐ろしい問題が発生します(最初から使用するべきではありません)。暗号化されていないデータが「ストレージ」ディレクトリに残る場合があります)。
Anthonの

まず、これは最初の返信で主張したことではありません。第二に、あなたは彼らが鍵リングを共有していないという私の指摘に答えていません。第3に、適切な秘密鍵が与えられた場合に両方ともメッセージを復号化できるという点でのみ互換性があります。
ルカシュLisの

6

出力ライン

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

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

PS

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

$ pass -c test

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


有用。(ミス)タイプに発生する可能性がありpass init SomethigElseThanFirstStoreます。
Nikos Alexandris

0

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

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

私はgpg_idファイルを確認します。私にとっては、新鮮な店ではFA829B53のみで他の行はありません。


0

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


これは質問に対する答えを提供しません。批評したり、著者に説明を求めるには、投稿の下にコメントを残してください。- レビューから
Kevdog777

確かに私は同じ問題を抱えていました、これで解決します
m3asmi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.