gpg-agent
両方のPGP e SSH IDの管理に使用しています。エージェントは次のようなスクリプトで開始されます
gpg_agent_env="$XDG_CACHE_HOME/gpg-agent.env"
export GPG_TTY="$(tty)"
if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then
eval "$({gpg-agent --daemon | tee $gpg_agent_env} 2> /dev/null)"
else
source "$gpg_agent_env" 2> /dev/null
fi
これは、インタラクティブシェルを実行するたびに読み込まれます。このセットアップではすべてが正常に機能しますが、問題があります。私が言ってみましょう:
- ターミナルを開き(バックグラウンドでエージェントを起動)、作業を開始します
- しばらくして、2つ目の端末を開きます
- 2番目の端末でパスフレーズを入力する必要があるアクションを実行する
この時点でパスフレーズのプロンプトgpg-agent
が開始pinentry-curses
されますが、最初のターミナルでこれが実行され、実行中のもの(通常はテキストエディター)と出力が混合され、プログラムを再開したり、ピンエントリを停止したりできません(100%cpuの使用を開始します)。そして私はそれを殺さなければなりません)。
私はここで何か悪いことをしているに違いありません。誰もがこれを経験しましたか?
更新:
私はこれが唯一のように見えるSSHキー、ロックを解除するためのプロンプトのために起こる考え出しこの PGPキーのプロンプトは常に正しい(すなわち電流)のttyにオープンしている間に、。
ログインシェルからエージェントを起動してみましたか?
—
jasonwryan 2016年
@jasonwryan私が試したところ:Linux仮想端末(agetty)でも同じです。ところで、ターミナルに関する質問では、ターミナルエミュレータウィンドウを意味しました。
—
Rnhmjoj 2016年
それは
—
naisanza
export GPG_TTY="$(tty)"
私のためにそれを修正しました