chiwata’s blog

たまに技術の話をします。

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、罠が多いような気がします。今回はここまで。