gpg-agentはssh-addで「エージェントが操作を拒否しました」と報告してSSHキーを拒否します


12

Arch Linuxでopenssh7.5p1とgnupg 2.1.21を使用しています(これらはArchに付属するデフォルトのバージョンです)。gpg-agentsshエージェントとして使用したいと思います。私は次のものを私の中に入れました~/.gnupg/gpg-agent.conf

pinentry-program /usr/bin/pinentry-qt
enable-ssh-support

Archはsystemdからgpg-agentを自動的に起動するので、設定します

export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/S.gpg-agent.ssh"

を実行するとssh-add -l、IDは報告されず、期待どおりにプロセスがps報告さgpg-agent --supervisedれます。

残念なことに、を実行するssh-addと、キーの種類に関係なく、機能しません。ここに私がdsaを試した方法の例があります:

$ ssh-keygen -f testkey -t dsa -N ''
Generating public/private dsa key pair.
Your identification has been saved in testkey.
Your public key has been saved in testkey.pub.
$ ssh-add testkey
Could not add identity "testkey": agent refused operation

他のすべてのgpg関数は正常に動作します(暗号化/復号化/署名)。また、生成したキーは、sshで直接使用すると問題なく動作ssh-agentし、opensshに付属のキーを実行すると正しく動作します。

ドキュメントにはssh-addにキーを追加する必要があると書かれていますが~/.gnupg/sshcontrol、明らかに何も起きていません。

私の質問:opensshののにより生成されたキーをロードするための最も簡単な方法は何だssh-keygengpg-agentし、缶誰かしてくださいカットをし、どのようにこの作品を示す端末セッションを貼り付けるには?


受け入れられた答えは私を助けてくれました、この質問を提起してくれてありがとう。これは時々起こりますが、永続的な解決策はありますか?
gf_

回答:


25

答えは明らかに実行することでした:

echo UPDATESTARTUPTTY | gpg-connect-agent

pinentryプログラムがファイルの復号化などの他の用途でうまく機能したが、で機能しなかった理由がわかりませんssh-add

これが機能するようになりましたが、それはまたの下に表示されませんSSH秘密鍵のコピーを作成しgpg -Kv、さらに(あなたと編集をすることができないので、あなたの秘密鍵にパスフレーズを変更することができていないようです--edit-key) 。基本的に私はgpg-agentあなたの秘密がコピーされている場所への低い可視性を提供する方法にかなり不満です。あなたgpg-agentがのより良い代替手段になるかもしれないと思ってこの質問に出た場合は、私の答えを試すのではなく、ssh-agent続けることをお勧めしますssh-agent。優先する主な理由gpg-agentは、スマートカードを使用する必要がある場合です。


この答えはどこで見つけましたか?それはうまくいきます!
CMCDragonkai 2019

これをありがとう、私のために働いた。これを定期的に実行しますか?起動/ログインごとに?「適切な」修正に関するアイデアはありますか?
gf_


2

私の場合、問題は使用されたpinentryプログラムでした。pinentry-emacsを使用していました。ssh-addgpg-agentで使用するとトリガーされるデュアルテキストフィールド入力ウィンドウプロンプトを処理しないようです。

pinentry-emacsを削除してGTK pinentryをインストールすると、ここで問題が解決しました。


これで、起動ttyを更新するように指示するたくさんのソースを見つけた後、ようやく問題が解決しました。
ウィリアムローゼンブルーム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.