WSL2 + DockerからWindowsのOpenSSH Authentication Agentに接続する
過去、WindowsとWSL2でOpenSSH Authentication Agentを使用する方法を書きました。
最後に、WSL2 + DodkerのコンテナからWindows(ホスト)のOpenSSH Authentication Agentへ接続できるようにします。
Windowsの設定
OpenSSH Authentication Agent 有効化
以前と同じですので省略します。
秘密鍵の登録
以前と同じですので省略します。
WSL2の設定
ディストリビューションにはUbuntuを使用しています。コンテナ作成にはVSCodeとRemote Developmentを使用します。
ビルドコンテキスト
/home/name/project_dir/
`-- .devcontainer/
|-- devcontainer.json
`-- Dockerfile
コンテナの作成と起動
準備ができたので、Remote Developmentでコンテナを作成します。起動後、ターミナルでssh-agentに登録された鍵リストを確認してみます。
$ ssh-add -l
256 SHA256:XXXXXXXXXXX.... id_ed25519_server (ED25519)
接続の確認ができました。
エラーが出る場合
稀に以下のエラーが発生することがありますが、Windowsの再起動で解消しました。
error fetching identities: communication with agent failed
後記
過去の二回の記事は、WSL2 + DockerコンテナからGithubに接続するための下準備として書きました。
事前のリサーチでは、コンテナからWin(ホスト)側への接続は複雑そうに思えたのですが、コンテナにopenssh-clientをインストールするだけで、あっさり接続できてしまいました。
ただ、前回のWSL2(Ubuntu)の設定が影響した可能性もあるので、Ubuntuのopenssh-clientとsocatをアンインストールし、~/.bashrcも元に戻し、再度コンテナを立ち上げてみたところ、これまた問題なくWin(ホスト)側のssh-agentに接続できました。
現在、VSCode + Remote Developmentでコンテナ作成をすれば、この辺りをうまく処理してくれているのかもしれません。
(ターミナルでコマンド入力によるコンテナ作成や、Ubuntu以外のOSは試していません。)
詳細までは調べていないので分かりませんが、目的は達成できたので終わりとします。