私のgpg-agentをリモートサーバーに渡すと、私の秘密鍵がリストされていることがわかります。ローカルでキーをロック解除しても、リモートシステムでロックを解除する必要があります。
ただし、リモートコンピュータからロックを解除しようとすると、ローカルコンピュータにpinentryが送信されます。使用時にパスワードを入力できない場合pinentry-tty
がありますpinentry-curses
。
奇妙な動作があり、いくつかのキーストロークを受け取り、一部はプレーンテキストで表示されることもあります。
pinentry --version
pinentry-curses (pinentry) 1.1.0
地元の
gpg --version
gpg (GnuPG) 2.2.27
離れて
gpg --version
gpg (GnuPG) 2.2.12
以下は私のローカル設定ファイルです。
gpg-agent.conf
extra-socket /run/users/1000/gnupg/S.gpg-agent.extra
pinentry-program /usr/bin/pinentry-curses
ssh.config
Host remote
HostName <ip-address>
User <username>
RemoteForward /run/users/1000/gnupg/S.gpg-agent /run/users/1000/gnupg/S.gpg-agent.extra
StreamLocalBindUnlink
また、リモートサーバーに/etc/ssh/sshd_config
。
一部のローカル端末にpinentryが表示されるように「強制」するには、次のコマンドを使用する必要がありました。
gpg-connect-agent updatestartuptty /bye
リモートサーバーで署名しようとすると、ローカル端末に次の画面が表示されます。
┌────────────────────────────────────────────────────────────────┐
│ Note: Request from a remote site. │
│ │
│ Please enter the passphrase to unlock the OpenPGP secret key: │
│ "username <email>" │
│ 256-bit EDDSA key, ID 1234567890, │
│ created 2021-01-01. │
│ │
│ │
│ Passphrase: __________________________________________________ │
│ │
│ <OK> <Cancel> │
└────────────────────────────────────────────────────────────────┘
パスワードを入力しようとすると、次のメッセージが表示されます。
┌────────────────────────────────────────────────────────────────┐
│ Note: Request from a remote site. │
│ │
│ Please enter the passphrase to unlock the OpenPGP secret key: │
│ "username <email>" │
│ 256-bit EDDSA key, ID 1234567890, │
│ created 2021-01-01. │
│ │
│ │
│ Passphrase: *elo w**wd ____________________________________ │
│ │
│ <OK> <Cancel> │
└────────────────────────────────────────────────────────────────┘
Pinentryを閉じると、コマンドラインで部分的なプレーンテキストを表示できます。
> elo wd
pinentry-tty
.
私のローカルコンピュータではArch Linuxを実行していますが、Macosでも同じ動作が発生します。私の端末エミュレータには、simple terminal
それぞれを使用します。iterm2
リモートコンピュータがDebian Busterを実行しています。
pinentry-tty
またはを使い続けたいですpinentry-curses
。
また、リモートサーバーからロックを解除せずに、GPG秘密鍵をローカルで「ロック解除」してリモートで転送できますか?
編集する:
4年前に誰かが同じ質問をしたようですね!
リモートサイトでローカルgpg-agentを使用するときの混合入力
残念ながら答えはありません。
答え1
MacOSでも同じ問題があります。
$ gpg --version
gpg (GnuPG/MacGPG2) 2.2.34
$ pinentry --version
pinentry-curses (pinentry) 1.2.0
同じiTermウィンドウで。ランニング:
$ killall gpg-agent && gpg-agent --daemon --pinentry-program /usr/local/bin/pinentry
その後、クイックテストを実行します。
$ echo "test" | gpg --clearsign
この問題は、pinentry
同じ端末ウィンドウの制限が原因で発生します。