Vagrantをsudo経由で利用しているとフォルダパーミッションの矛盾から、セキュリティエラーが出ることがある。
sudo vagrant ssh The private key to connect to the machine via SSH must be owned by the user running Vagrant. This is a strict requirement from SSH itself. Please fix the following key to be owned by the user running Vagrant: /home/usera/.vagrant.d/insecure_private_key
このエラーは古いバージョンでは出ないらしいが1.3.5では出た。原因としてはSSH接続時に利用するprivate keyの持ち主がプロセスを実行している持ち主と一致している必要があるため。
.vagrant.dの持ち主を確認してみるとuseraになっている。
drwxrwxr-x 7 usera usera 4096 2013-11-08 17:32 .vagrant.d
sudo時は確かにプロセスはrootになっているから仕様どおりだがroot権限なのになぜという疑問がわく。
対処方法はプロセスと.vagrant.dの所有者を一致させる。vagrantをuseraで実行させるのは面倒くさいので、.vagran.dの所有者を変える。
sudo chown -R root .vagrant.d/
これでsshが成功した。