GPGはあなたのGITに署名して、あなたのSSHキーを覚えています
これは私のフォローアップですWSL2 hack enabling Systemd サービス管理やセッション管理などのすべての素晴らしい機能を有効に実行します.セッション管理は、WSL 2ディストリコのほとんどのグラフィカルまたはGUIアプリケーションを使用すると、適切なWindowsベースのX410 , MobaXTerm or VCXSRV .
それで、あなたはあなたのWSL 2ディストリコで離れて働いています、そして、あなたはユビィのようなハードウェア・セキュリティ・モジュールによって後退しているあなたのPGPキーでGitコミットに署名したいです.または、SSHキーを使用して、SSHのキーを使用して、長いと難しいパスワードを覚えています.両方の活動は、Windowsベースの“エージェント”を使用して改善または有効にすることができます.PGPにはGPG 4 winのを使用できます
インストール
私たちはgpg 4 winをインストールする必要があります.したがって、gpg 4 winをインストールするにはWingetを使います.ウィンドウで実行します.
キーの読み込み
次に、あなたの個人的なsshまたはpgpキーまたはHSMバックパブリックPGPキーをWindowsエージェントにロードします.sshキーのため、これは簡単です単にキーをコピーする
PGPキーについては、[スタート]メニューを使用してKleopatraを開きます.HSMを使用している場合は、公開鍵をキーサーバーで公開キーを検索するために、ファイルまたは指紋IDとして必要とします.ファイルベースのキー選択ファイルをインポートするには
エージェントの自動起動
sshエージェントのために、これはPowerShellでするのが簡単です.プレスでダイアログを開きます
エージェントをWSL 2に結びつける
まず、あなたのディストリビューションを持っている必要がありますWSLUtilities インストール.Ubuntuでは、これらは既に存在します.あなたのディストリビューションのリンクgithubページの手順に従ってください.
次に、我々は必要
仕上げ
お済みです.ちょうどあなたのWSL 2セッションを再開して、Linux環境の中からWindowsで主催されるGPGとSSHエージェントを使うことができます.また、これはユービキーPGPキーのために動作します!
私はすぐにDamion GansがSystemHard Hackのためにした方法をインストールを自動化するためにこれに戻ることを望みます.
それで、あなたはあなたのWSL 2ディストリコで離れて働いています、そして、あなたはユビィのようなハードウェア・セキュリティ・モジュールによって後退しているあなたのPGPキーでGitコミットに署名したいです.または、SSHキーを使用して、SSHのキーを使用して、長いと難しいパスワードを覚えています.両方の活動は、Windowsベースの“エージェント”を使用して改善または有効にすることができます.PGPにはGPG 4 winのを使用できます
gpg-agent
そしてsshのために、我々はWindowsで出荷されるSSHエージェントを使用することができます.インストール
私たちはgpg 4 winをインストールする必要があります.したがって、gpg 4 winをインストールするにはWingetを使います.ウィンドウで実行します.
winget.exe install gpg4win
キーの読み込み
次に、あなたの個人的なsshまたはpgpキーまたはHSMバックパブリックPGPキーをWindowsエージェントにロードします.sshキーのため、これは簡単です単にキーをコピーする
C:\Users\<your-username>\.ssh\
.PGPキーについては、[スタート]メニューを使用してKleopatraを開きます.HSMを使用している場合は、公開鍵をキーサーバーで公開キーを検索するために、ファイルまたは指紋IDとして必要とします.ファイルベースのキー選択ファイルをインポートするには
ctrl+I
), ブラウザでキーファイルを見つけ、「開く」をクリックします.キーのIDを選択してキーサーバーの公開キーを検索する“ファイル”とし、“サーバー上のルックアップ”ctrl+shift+I
). キーの指紋IDを入力するダイアログで、検索をクリックし、リストから正しいキーを選択し、「インポート」をクリックします.エージェントの自動起動
sshエージェントのために、これはPowerShellでするのが簡単です.プレスでダイアログを開きます
win+r
テキストボックスにPowerShellを入力し、最後にctrl+shift+enter
特権モードで起動します.ここでPowerShellウィンドウに次のように入力します.Set-Service ssh-agent -StartupType automatic
Start-Service ssh-agent
GPGエージェントを起動するには、新しい権限のないPowerShellウィンドウを開き、実行します.& 'C:\Program Files (x86)\GnuPG\bin\gpg-connect-agent.exe' /bye
ただし、現在のセッションを一度だけエージェントを起動します.ログインするたびに、SSHエージェントのように特権的なパワーシェルを開くことができます.Register-ScheduledJob -Name GPGAgent -Trigger (New-JobTrigger -AtLogOn) -RunNow -ScriptBlock {
& "${env:ProgramFiles(x86)}/GnuPG/bin/gpg-connect-agent.exe" /bye
}
エージェントをWSL 2に結びつける
まず、あなたのディストリビューションを持っている必要がありますWSLUtilities インストール.Ubuntuでは、これらは既に存在します.あなたのディストリビューションのリンクgithubページの手順に従ってください.
次に、我々は必要
socat
インストールされていない場合:sudo apt update
sudo apt install -yyq socat
さて、以下のコードをあなたのディストリビューションのファイルに置きます/etc/profile.d/wsl2-ssh-gpg-agents.sh
. これはあなたのディストリビューションが自動的に/etc/profile.d
:NPIPERELAY_URL="https://github.com/NZSmartie/npiperelay/releases/download/v0.1/npiperelay.exe"
if [ -n "$WSL_DISTRO_NAME" ]; then
APPDATA="$(wslvar appdata)"
APPDATA="${APPDATA//\\/\/}"
NPIPERELAY_WIN="$APPDATA/wsl2-ssh-gpg-npiperelay.exe"
NPIPERELAY="$(wslpath "$NPIPERELAY_WIN")"
if [ ! -f "$NPIPERELAY" ]; then
curl -L -q -o "$NPIPERELAY" "$NPIPERELAY_URL"
fi
#####
## Autorun for the gpg-relay bridge
##
SOCAT_PID_FILE=$HOME/.gnupg/socat-gpg.pid
SOCAT_PID_FILE2=$HOME/.gnupg/socat-gpg.pid.2
for GPG_SOCK in "$HOME/.gnupg/S.gpg-agent" "/run/user/$UID/gnupg/S.gpg-agent"; do
if ! ss -a | grep -q "$GPG_SOCK"; then
rm -f "$GPG_SOCK"
mkdir -p "$(dirname "$GPG_SOCK")"
setsid --fork socat UNIX-LISTEN:"$GPG_SOCK",fork EXEC:"$NPIPERELAY -ei -ep -s -a "'"'"$APPDATA"/gnupg/S.gpg-agent'"',nofork
fi
done
#####
## Autorun for the ssh-relay bridge
##
export SSH_AUTH_SOCK=$HOME/.ssh/agent.sock
if ! ss -a | grep -q "$SSH_AUTH_SOCK"; then
rm -f "$SSH_AUTH_SOCK"
setsid --fork socat UNIX-LISTEN:"$SSH_AUTH_SOCK",fork EXEC:"$NPIPERELAY -ei -s //./pipe/openssh-ssh-agent",nofork
fi
fi
仕上げ
お済みです.ちょうどあなたのWSL 2セッションを再開して、Linux環境の中からWindowsで主催されるGPGとSSHエージェントを使うことができます.また、これはユービキーPGPキーのために動作します!
私はすぐにDamion GansがSystemHard Hackのためにした方法をインストールを自動化するためにこれに戻ることを望みます.
Reference
この問題について(GPGはあなたのGITに署名して、あなたのSSHキーを覚えています), 我々は、より多くの情報をここで見つけました https://dev.to/diddledani/gpg-sign-your-git-commits-and-remember-your-ssh-key-passwords-in-wsl2-including-yubikey-pgp-support-39oeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol