ペネトレーションしのべくん

さようなら、すべてのセキュリティエンジニア

vagrant upで生成された秘密鍵が666なせいでVMにSSHできない

……ということが発生した。

環境

事象

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して解決。

※参考

yachibit.hatenablog.jp

調査は頓挫

他の方が公開しているVagrantfileで発生した事象で、原因を突き詰めようと自分で簡単なVagrantfileを作ってupしてみたら600で生成されていた。他に目的があってVagrantに手を付けているので、原因究明は置いておいて一旦対策だけメモしておく。バグではなくVagrantへの理解が足らないだけな気もしている。