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 *
具体的に何をしているのかというと、
って感じです。
追記 [2020/12/23]
sshで多段プロキシを利用する際に、ProxyCommandを記載すると思うのですが、
ProxyCommand ssh [踏み台サーバー] -W %h:%p
ではなく
ProxyCommand ssh.exe [踏み台サーバー] -W %h:%p
と記載しないと
CreateProcessW failed error:2 posix_spawn: No such file or directory
Windows側でプロセスの立ち上げができず、エラーで動きません。
ちなみにWindows側のフルパスで記載をしていると、もちろんWSL側ではパスの解決ができないのでエラーで動きません。
要注意です。