WSLのVagrantでconfig.ssh.insert_key = falseにするとsshできない
ansibleでプロビジョニングするのに、マシン一台一台に別の鍵が設定されるとうざいです。私は怒っています。
なので config.ssh.insert_key = false
をすることに。すると vagrant ssh
できなくなりした。むむむ。。。
結果としては、私がイメージしていた鍵の場所と、実際に見ている鍵の場所が違います。
$ vagrant ssh users001 vagrant@127.0.0.1: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
権限がないといわれていますね。鍵の権限を見ます。
$ ls -la ~/.vagrant.d/insecure_private_key -rw------- 1 chiwata chiwata 1675 Jun 22 18:02 /home/chiwata/.vagrant.d/insecure_private_key
600に設定しているので正しいはず。
いろいろ調べていくと、WSLのホームディレクトリの .vagrant
ではなく、windowsのホームディレクトリを見ているようです。
$ ls -la /mnt/c/Users/user/.vagrant.d/insecure_private_key -rwxrwxrwx 1 chiwata chiwata 1675 Feb 18 15:07 /mnt/c/Users/user/.vagrant.d/insecure_private_key
権限が777になっていますね。
$ chmod 600 /mnt/c/Users/user/.vagrant.d/insecure_private_key $ ls -la /mnt/c/Users/user/.vagrant.d/insecure_private_key -rwxrwxrwx 1 chiwata chiwata 1675 Feb 18 15:07 /mnt/c/Users/user/.vagrant.d/insecure_private_key
権限の変更ができません。
$ sudo umount /mnt/c $ sudo mount -t drvfs C: /mnt/c -o metadata
一度アンマウントして、メタデータのオプションを付与して再マウントすると変更できるようになります 先ほどはWSLのユーザー名が所有者になっていましたが、なぜかrootになっているようなので、一緒にchownもします。
$ sudo chmod 600 /mnt/c/Users/user/.vagrant.d/insecure_private_key $ ls -la /mnt/c/Users/user/.vagrant.d/insecure_private_key -rw------- 1 root root 1675 Feb 18 15:07 /mnt/c/Users/user/.vagrant.d/insecure_private_key $ sudo chown -R chiwata:chiwata /mnt/c/Users/user/.vagrant.d/
これでsshできるようになりました
$ vagrant ssh users001 [vagrant@localhost ~]$
WSL、罠が多いような気がします。今回はここまで。