gpg-agentには、よく知られているssh-agentのドロップイン代替として使用できるオプション「--enable-ssh-support」および「--enable-PuTTY-support」があります。
私はこれがWindowsとgit-bashでどのように正確に機能するかを理解しようとして、髪の毛を抜いてきました。 (PHPStormなどを含むWindows PCマシンでgitbashとopensshを操作する必要のあるスクリプトやその他のプログラムがたくさんあるので、PuTTYの使用を提案しないでください)
私の最初の試みは、enable-ssh-support
ファイルにC:\Users\[user]\AppData\Roaming\gnupg\gpg-agent.conf
行を含めることでした。
そして、export SSH_AUTH_SOCK=/c/users/[user]/AppData/Roaming/gnupg/S.gpg-agent.ssh
ファイルの/c/users/[user]/.bash_profile
行。 (また、値SSH_AUTH_SOCK
でWindows環境変数C:\Users\[username]\AppData\Roaming\gnupg\S.gpg-agent.ssh
を作成しました)
キーリングにGPGシークレットキーがあり、認証と暗号化が有効なサブキーがあります。
そして、認証が有効なサブキーのキーグリップをC:\Users\[user]\AppData\Roaming\gnupg\sshcontrol
ファイルに追加しました。
GnuPG 2.2.4には -export-ssh-key オプションが付属しているため、GPGキーをOpenSSH形式に変換するためにmonkeysphere
は必要ありません。そこで、公開鍵をエクスポートして、適切なアクセス許可を持つリモートLinuxボックスのauthorized_keysファイルに配置しました(PuTTYを使用して別のコンピューターでテスト済み)。
次に、PowerShellでgpg-connect-agent killagent /bye
とgpg-connect-agent /bye
を実行しました(バックグラウンドで実行されているgpg-agentを起動し、S.gpg-agent.ssh
SOCKファイルを作成しました)。
次に、通常の方法でサーバーにSSH接続しようとしました。
そしてそれは私にエラーを与えました。
次に、PuTTYサポートを有効にしてみました(enable-PuTTY-support
のgpg-agent.conf
行でPuTTYサポートを有効にできます。
また、Windowsで環境変数を作成する必要がありますGIT_SSH='C:\ProgramData\chocolatey\bin\PLINK.EXE'
)
次に、chocolateyパッケージマネージャーにも付属しているOpenSSHを使用してみました。
それらのどれも期待通りに機能しませんでした。
最後に、私はすべてをあきらめて、PuTTYとgpg-agentを使用して接続しようとしました。 git-bashもアンインストールしました。次に、GnuPGとPuTTYを使用してみました。
PuTTY ssh-> authでエージェント転送を許可しました。その後、サーバーに接続しようとしましたが、それでもパスワードを要求されます。 gpg-agentはキーを転送しませんが、gpg-agent
をPAGEANT
として検出します
PuTTYのイベントログ:
2018-02-10 16:48:51 Connecting to xx.xxx.xxx.xx port 22 2018-02-10 16:48:51 We claim version: SSH-2.0-PuTTY_Release_0.70 2018-02-10 16:48:52 Server version: SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8 2018-02-10 16:48:52 We believe remote version has SSH-2 channel request bug 2018-02-10 16:48:52 Using SSH protocol version 2 2018-02-10 16:48:52 Doing ECDH key exchange with curve Curve25519 and hash SHA-256 2018-02-10 16:48:53 Server also has ecdsa-sha2-nistp256/ssh-dss/ssh-rsa Host keys, but we don't know any of them 2018-02-10 16:48:53 Host key fingerprint is: 2018-02-10 16:48:53 ssh-ed25519 256 1f:7b:5d:c4:b4:ae:5d:81:72:da:1d:c8:b2:cc:67:7b 2018-02-10 16:48:53 Initialised AES-256 SDCTR client->server encryption 2018-02-10 16:48:53 Initialised HMAC-SHA-256 client->server MAC algorithm 2018-02-10 16:48:53 Initialised AES-256 SDCTR server->client encryption 2018-02-10 16:48:53 Initialised HMAC-SHA-256 server->client MAC algorithm 2018-02-10 16:49:07 Pageant is running. Requesting keys. 2018-02-10 16:49:07 Pageant has 0 SSH-2 keys
私の問題を見つけられますか? PuTTYログ
一歩一歩進んでいきましょう。
1。Pageant has 0 SSH-2 keys
これは今あなたをブロックしています。あなたはログレポートのページェントだと思いますが、実際にはバックグラウンドでgpg-agentを実行しています。先に進む前に、これを再確認することをお勧めします。
Gpg-agentがssh認証に必要なキーをロードしていることを確認しましょう。
> gpg --version
gpg (GnuPG) 2.1.21
...
> gpg -k --with-keygrip
...
sub rsa4096/0x0123456789ABCDEF 2018-01-01 [A] [expires: 2019-01-01]
Keygrip = 0123456789ABCDEF0123456789ABCDEF01234567
...
> gpg-connect-agent "keyinfo --list" /bye
...
S KEYINFO 0123456789ABCDEF0123456789ABCDEF01234567 T xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx OPENPGP.3 - - - - -
...
OK
このようにして、gpg-agentに期待するキーがロードされていることを確認できます。次のステップは、サーバーが適切なキーを要求していることを確認することです。
2。未定