Windows Subsystem for Linuxで、Windows側のSSHキーと設定を使う方法

目的

WindowsでWin32-OpenSSHがまともに使えるようになってきて、Windows側とWSLの両方でSSHを使うよって人もいるかもしれません。
とりあえず、ここに一人います。

SSH鍵のセットアップって、結構面倒(主に、リモート先で鍵を追加して回るのが面倒)なので共有できたら楽ですよね。
別マシンで秘密鍵を流用するのはセキュリティ的によくないことですが、WSLなら物理一台なのでいいじゃん。と先に言い訳しておきます。

方法

まず、WSLのディレクトリマウントのオプションを設定します。

vim /etc/wsl.conf

下記を追記してください。

[automount]
enabled = true
options = "metadata"


続いて下記の操作を行います。

sudo umount /mnt/c
sudo mount -t drvfs C: /mnt/c -o metadata
ln -s /mnt/c/Users/[Username]/.ssh/ ~/.ssh
cd ~/.ssh
chown [Username] *
chmod 600 *

具体的に何をしているのかというと、

  1. 一旦Windows側のファイルシステムをアンマウントして、
  2. wsl.confで設定したのと同様の設定でマウントしなおし、
  3. パーミッションを正しく設定しなおしてる

って感じです。

これで、再起動を行っても問題なく、WSLからWindows側の設定でSSHが使い続けられるようになります。