Yubikeyを使用してGPGキーペアを保存し、このキーペアをSSHキーとしても使用するのが好きです。 WindowsのGPGはページェントスタイルのSSHエージェントを公開し、WSL内でこのキーを使用する方法を望んでいました。リリースが単一の単純なバイナリであることを意味するので、私はこれをGOで書き直しました、そして私はGOが好きです。
Windows側では、ページェント(またはGPG4WINなどの互換性のあるエージェント)を開始します。
wsl-ssh-pageant.exe --wsl C:wsl-ssh-pageantssh-agent.sock (またはその他のパス、最大100文字)を実行する
WSLでは、 SSH_AUTH_SOCK環境変数をソケットを指すようにエクスポートします。たとえば、 C:wsl-ssh-pageantにssh-agent.sockがある場合、
$ export SSH_AUTH_SOCK=/mnt/c/wsl-ssh-pageant/ssh-agent.sock
sshによって使用できるようになりましたWindows側では、ページェント(またはGPG4WINなどの互換性のあるエージェント)を開始します。
wsl-ssh-pageant.exe --winssh ssh-pageant (またはその他の名前)を実行する
cmdでは、 SSH_AUTH_SOCK環境変数をエクスポートするか、Windowsの環境変数で定義します。たとえば、パイプに与えた名前を使用してください。
$ set SSH_AUTH_SOCK=\.pipessh-pageant
cmd.exeでsshを使用してみてくださいsystray run wsl-ssh-pageant.exe --systray --winssh ssh-pageant (または--wslを使用)。
両方のプロキシに同じプロセスを使用して、 --winsshと--wslパラメーターの両方を同時に使用できます
リリースページで最新リリースを入手してください。
WSLサポートには、1.12以降に行く必要があります。 1.12に進み、WindowsのAF_UNIXソケットのサポートを追加します。
Assets.goを作成するには:実行:
go generate
コンソールウィンドウなしでビルドを作成するには:
go build -ldflags -H=windowsgui
WSLサポートにはWindows 10 1803以降が必要です。これは、 AF_UNIXソケットをサポートする最初のバージョンであるためです。これは、以前のビルドでネイティブWindows SSHクライアントで引き続き使用できます。
GUI.exeバイナリと通常のバイナリの違いは、PEヘッダーに設定されたサブシステムです。 GUI.exeバイナリは、win32サブシステムで設定されているため、コマンドラインを生成せず、起動時に起動できます。通常のバイナリにはコンソールサブシステムがあるため、ダブルクリックするとコマンドラインが起動し、予想どおりにコマンドラインをブロックします。注:ツールが実行されている間にSystrayアイコンを使用するように、 -systrayフラグを使用してバイナリを起動することができます。これは、アプリケーションを終了する方法のみを提供します。
問題を開いてください、私はそれらの上に続けて、約束します。
AF_UNIXソケットが利用可能になる前に、WSLとLinuxの間にストリームを作成するためのより安全な方法の例については、NpiperelayのJohn Starksに感謝します。