いまのプロジェクトでは 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 --shutdown
chmod 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.
無事に認証が通っていることを確認できました!!