いまのプロジェクトでは Devconteier 上で開発をしています
ただ、少し訳があってコンテナ上で git 操作する必要がありました
github へ SSH で通信をする際にローカルの鍵をコンテナ上で使うためにひと手間かかったので手順を残します
ホストOSのssh-agentに秘密鍵が登録されていればコンテナ内でも自動的に同じ鍵でSSH接続ができます
ただ、そのままだと起動するたびに鍵の登録が必要であり不便です
なので、秘密鍵の管理などをしてくれる Keychain を利用します
WSL上で以下を行います
Keychain をインストールするsudo apt-get install keychain~/.bashrc に鍵をロードするためのスクリプトを追記する/usr/bin/keychain -q --nogui /mnt/c/Users/{username}/.ssh/id_ed25519 # 利用したい秘密鍵を指定
source $HOME/.keychain/$(hostname)-shこれでWSLのターミナル起動時に自動でロードしてくれるのですが
Windows 上に置いてある鍵を利用したい場合はこのままだとエラーがでます
* Error: Problem adding; giving upこれは秘密鍵への権限が不足しているためになります
なので、次は権限を更新する手順が必要になります
wsl.conf に設定を追記するsudo vim /etc/wsl.conf[automount]
options = "metadata"wsl --shutdownchmod 600 /mnt/c/Users/{username}/.ssh/id_ed25519これでWSLのターミナル起動時にエラーは発生せず鍵をロードできるようになりました
この状態で Devcontainer でコンテナ起動します
ssh -T [email protected] を実行してみるroot@f91f576fec41:/usr/src/app# ssh -T [email protected]
Hi {username}! You've successfully authenticated, but GitHub does not provide shell access.無事に認証が通っていることを確認できました!!