💻
wsl2+Docker環境でのVisualStudioCodeのDevContainer内でのSSHの鍵周りのお話
はじまり
wsl2 distro上でssh-agent使ってると、DevContainer内からでも利用可能にしてくれる機能があるが、DevContainer内でssh-add -l
を試してみても
$ ssh-add -l
Could not open a connection to your authentication agent.
ssh-agentに接続出来ず。。。(wsl2 distro上では登録してあるSSHキーがリストアップされます)
色々試して調査してみた結果解決したので解決方法を残します。
調べて試した過程
zshを使っていましたが、.zshrcに
keychain id_rsa
source $HOME/.keychain/$HOST-sh
を記述していました。
色々調べてみましたがbashだとすんなりいけたという記事を見かけたので.bash_profileに
keychain id_rsa
source $HOME/.keychain/$HOSTNAME-sh
と記述しchshコマンドでbashに変更し
wsl.exe --shutdown
にて再起動しDevContainer内で再びssh-add -l
コマンドを実行してみたところすんなりDevContainer内からもssh-agentに登録されたSSHキーのリストが表示されました。
結局bashでしか無理なの?
最初はそんな疑問が出ました。
引き続き調べてみた結果、.zshrcではなく.zprofileに書け!
みたいな情報を発見。
keychain id_rsa
source $HOME/.keychain/$HOST-sh
という事で早速.zshrcから該当行を削除し、.zprofileへ記述してログインシェルをzshに変更して再び再起動。
無事zshでもDevContainer内でssh-agentに接続出来たようでSSHキーが使えるようになりました。
まとめ
DevContainer内でもSSHキーを使いたかったらwsl2 distro上で
- bashなら.bash_profile内に
- zshなら.zprofile内に
- socatをwsl2 distro内にインストールする必要もある
keychainの設定を書く。
Discussion