課題
デフォルト設定だとWSLとWindowsユーザーのホームディレクトリは別々の場所なので、SSH設定も別々になってしまう。
SSHの設定ディレクトリ
WSL:~/.ssh
Windows:/mnt/c/Users/[USERNAME]/.ssh/
Windows側でsshしたい場合とwsl側でsshしたい場合、両方のディレクトリにキーペアを保存する必要がある。
両方に保存するのは面倒なのでシンボリックリンクを張って共有化する。
WSLメタデータの設定変更
キーペアのパーミッションは自分自身のみ読み書きできるように変更する必要があるが、デフォルト設定だとWSLからWindows上のファイルのパーミッション変更ができないので、メタデータの設定変更を行う必要がある。
参考
ヒアドキュメントで/etc/wsl.confを作成(WSL側で実施)
sudo tee -a /etc/wsl.conf << EOT > /dev/null
[automount]
options = "metadata,umask=22,fmask=11"
EOT
WSLの再起動(コマンドプロンプトで実施)
wsl --shutdown
シンボリックリンクの作成
シンボリックリンクの作成(WSL側で実施)
USERNAME=user01 # USERNAMEはWindowsのユーザー名を指定
ln -s /mnt/c/Users/${USERNAME}/.ssh ~/.ssh
パーミッションの変更(WSL側で実施)
chmod 600 ~/.ssh/*
上記でWindows側のキーペアファイルをWSL側でも使用可能
user01@WINDOWS:~/.ssh$ ssh -i ~/.ssh/test-20240331.pem ec2-user@xxxxxxxxxx.ap-northeast-1.compute.amazonaws.com
, #_
~\_ ####_ Amazon Linux 2023
~~ \_#####\
~~ \###|
~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
~~ V~' '->
~~~ /
~~._. _/
_/ _/
_/m/'
Last login: Sun Mar 31 02:14:07 2024 from xxxxxxxxxx
[ec2-user@xxxxxxxxxx ~]$