vagrant upで生成された秘密鍵が666なせいでVMにSSHできない
……ということが発生した。
環境
- WSL
- Vagrant(2.0.1)
事象
vagrant sshが失敗してパスワード認証に切り替わってしまう原因が分からず、sshの-p、-iオプションでそれぞれポート番号と秘密鍵を指定してログイン試行したところ、以下のエラーメッセージが出力されて同様にパスワード認証に切り替わった。
Permissions 0666 for '/home/shino/vagrant/testdir/.vagrant/machines/testhost/virtualbox/private_key' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: /home/shino/vagrant/testdir/.vagrant/machines/testhost/virtualbox/private_key Password:
「秘密鍵を666にするのはオープンにも程があるでしょう!」とのことなので実際に確認してみたら本当に666だった。
-rw-rw-rw- 1 shino shino 1679 Jan 28 22:46 /home/shino/vagrant/testdir/.vagrant/machines/testhost/virtualbox/private_key
対策
chmod 600 /home/shino/vagrant/testdir/.vagrant/machines/testhost/virtualbox/private_keyして解決。
※参考
調査は頓挫
他の方が公開しているVagrantfileで発生した事象で、原因を突き詰めようと自分で簡単なVagrantfileを作ってupしてみたら600で生成されていた。他に目的があってVagrantに手を付けているので、原因究明は置いておいて一旦対策だけメモしておく。バグではなくVagrantへの理解が足らないだけな気もしている。