設定しようとしています。gpg-agent
SSHを介して自分のコンピュータにログインして呼び出すと、gpg
毎回パスワードを要求されます(gpg-agent
自動的に起動しません)。
gpg-agent
手動で使用を開始すると、次のようになります。
eval "$(gpg-agent --daemon)"
その後、次の呼び出しでgpg
実際にエージェントを起動してパスワードを入力した後、パスワードなしでgpgを使用できます。そしてソケットが作成されたことがわかります。$HOME/.gnupg/S.gpg-agent=
ログアウトして再度ログイン(ssh)すると、ソケットがまだ存在し、エージェントが実行中であることがわかりますが、すべての呼び出しは、$HOME/.gnupg/S.gpg-agent=
エージェントがないかのようにパスワードを要求します。ps
gpg
私はこれを私のものに追加しました.bashrc
:
GPG_TTY=$(tty)
export GPG_TTY
しかし、これはあまり役に立たないと思います。
私はこの行動がgpg-agent
非常に混乱していると思います。それは私になじみssh-agent
、操作が簡単で理解しやすいです。
gpg-agent
私が使用するのと同じ方法でどのように使用できますかssh-agent
?
比較のための動作は次のとおりですssh-agent
。
コンピュータを初めて起動してログインした後、ssh-add
手動で起動してパスワードを一度入力しました。
これにより、マイコンピュータ(X、コンソール、ssh ...)にログインするたびにプロキシを使用できます(パスワードを再入力する必要はありません)。これは次の行を追加することによって行われます.bashrc
。
export SSH_AUTH_SOCK="$(find /tmp/ssh-*/agent.* -uid $(id -u) -type s -print -quit 2>/dev/null)"
ベストアンサー1
gpg
ソケットを見つけませんが(新しいバージョン2.1とは異なります)、環境変数を見つけますGPG_AGENT_INFO
。ログイン時には設定されません。ここに問題があります。明らかに、ソケット名が常に同じであることをuse-standard-socket
選択できます。gpg-agent.conf
ログインスクリプトで変数を設定し、単純なスクリプトを実行して実行していることをgpg-agent
確認する必要があります。
export GPG_AGENT_INFO=/path/to/your/HOME/.gnupg/S.gpg-agent:42:1
gpg-connect-agent /bye &>/dev/null || gpg-agent --daemon &>/dev/null
使用される部分ですgpg
。 SSHの場合、SSH_AUTH_SOCK
これら2つの変数を設定する最も簡単な方法は、次の行を追加することです。
write-env-file "${HOME}/.gpg-agent-info
構成ファイルに追加しgpg-agent.conf
、上記のスクリプトの後にこのスクリプトを実行します。
. "${HOME}/.gpg-agent-info"
export SSH_AUTH_SOCK
マニュアルページではこれについて説明しますgpg-agent
。