gpg-agent
そのオプションを使用してMacでローカルプログラムを起動しますextra-socket
。次に、SSHを使用してリモートサイトに接続し、S.gpg-agent
リモートソケットをローカルS.gpg-agent.extra
ソケットに渡します。これは働きます:
ssh -R /remotehome/.gnupg/S.gpg-agent:/localhome/.gnupg/S.gpg-agent.extra remotesystem
リモートコンピュータで何かに署名しようとすると、pinentry
ローカルでダイアログボックスが表示され、パスワードの入力を求められます。これがうまくいく方法です。ただし、パスワードの入力を開始すると、一部のキーストロークが明確に入りpinentry
(表示されているように*
)、一部はプロセスと同じttyで実行されているシェルで終わりますpinentry
。
┌────────────────────────────────────────────────────────────────┐
│ Note: Request from a remote site. │
│ │
│ Please enter the passphrase to unlock the OpenPGP secret key: │
│ "My name <my.email@address>" │
│ 4096-bit RSA key, ID MYKEYIDXXX0000YYY, │
│ created 2015-06-17 (main key ID MYMAINKEYIDXXX0000YYY). │
│ │
│ │
│ Passphrase: t*i*e_____________________________________________ │
│ │
│ <OK> <Cancel> │
└────────────────────────────────────────────────────────────────┘
キーを押すと、壊れたパスワードをに送信したり、シェルに入らないキーストロークを送信したりReturnできます。gpg
pinentry
/bin/ksh: tie: not found
どうやってpinentry
キャッチできますか?みんなttyの鍵?
ローカルコンピュータは、GnuPG 2.1.14(コンパイル)を実行するMacですpkgsrc
。リモートサイトは、同じGnuPGバージョンを使用するLinuxシステム、またはGnuPGバージョン2.1.15(違いなし)を使用するOpenBSDシステムです。オプションextra-socket
は私のものですgpg-agent.conf
。環境変数がGPG_TTY
正しく設定され、gpg-connect-agent updatestartuptty /bye
ローカルで実行すると起動したttyが移動しpinentry
ますが、同じ問題があります。
gpg-connect-agent updatestartuptty /bye
リモートコンピュータでタスクを実行すると、次の結果が得られます。
$ gpg-connect-agent updatestartuptty /bye gpg-connect-agent: connection to agent is in restricted mode ERR 67109115 Forbidden <GPG Agent>
…それは私が期待していたことです。
curs インターフェイスから tty インターフェイスに変更してもpinentry
違いはありません。私が使用できるインターフェースはこのpinentry
2つだけです。私はX11を実行しません。
アップデート:ローカルシステムがOpenBSD 6.3(GnuPG 2.2.9)を実行し、リモートシステムが一部のUbuntuシステム(GnuPG 2.1.11)を実行している場合、状況はさらに悪化します。いいえキーを押してpinentry
シェルに入り、すべての内容を読みます。