YubiKeyを使用して、たとえばサーバーのGnuPGキーをロック解除できるかどうか疑問に思っているので、生成されたトークンをSSH経由でYubiKeyからサーバーに簡単な方法で渡せますか?
GnuPGはYubikeyによって生成されたトークンを利用しませんが、スティックは代わりにOpenPGPスマートカードプロトコルを実装します。キーはYubiKeyに保存され、YubiKeyはすべての公開/秘密キー暗号化操作を実行します。特別な保護は、キーがYubiKeyを離れることができないという事実に基づいているため、攻撃者は(一時的に、ロックされていないスティックにアクセスできる限り)キーを使用できますが、完全に保持することはできません。 。
GnuPGには エージェント転送 と呼ばれる機能があります。それは主にgpg-agent
特定の操作にのみ使用される特別な追加ソケットを提供するには:
extra-socket /home/<user>/.gnupg/S.gpg-agent.extra
次に、ソケット上のすべての通信をリモートサーバーに転送するようにSSHを構成します。
RemoteForward /home/<user>/.gnupg/S.gpg-agent /home/<user>/.gnupg/S.gpg-agent.extra
上記のリンク先のWikiページで、ニッチに関するいくつかのヒントを含む詳細な説明を参照できます。
GnuPGまたはLinuxディストリビューションの新しいバージョンでは、ソケットのパスを変更できます。これらはを介して見つけることができます
$ gpgconf --list-dirs agent-extra-socket
そして
$ gpgconf --list-dirs agent-socket
次に、これらのパスをSSH構成に追加します。
Host remote
RemoteForward <remote socket> <local socket>
公開鍵をコピーするための簡単なソリューション:
scp .gnupg/pubring.kbx remote:~/.gnupg/
リモートマシンで、GPGエージェントをアクティブ化します。
echo use-agent >> ~/.gnupg/gpg.conf
リモートマシンで、SSHサーバー構成も変更し、このパラメーター(/ etc/ssh/sshd_config)を追加します。
StreamLocalBindUnlink yes
SSHサーバーを再起動し、リモートマシンに再接続します-動作するはずです。
いくつかのトラブルシューティングを含むより詳細なチュートリアルが見つかります Matthias Lohrによるブログ投稿 。