[2016/7/24 追記] Vagrant 1.8.5のバグ(GH7610/GH7611)だったようです。masterでは修正しているということなので、リリースされるまではVagrant 1.8.4を使いましょう。
ふとVagrantでLinuxをデプロイしようとvagrant upしたところ、次のようなメッセージが出続けました。ちなみにしばらくそのまま待つとタイムアウトします。仮想マシン自体は起動していますが、ログインはできません。
$ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ... ==> default: Booting VM... ==> default: Waiting for machine to boot. This may take a few minutes... default: SSH address: 127.0.0.1:2222 default: SSH username: vagrant default: SSH auth method: private key default: Warning: Authentication failure. Retrying... default: Warning: Authentication failure. Retrying... default: Warning: Authentication failure. Retrying...
調べたところ、次のような解決のヒントを見つけました。
もしくは諦めてパスワード認証するように設定することでも回避できそうです。
ただ、そんな後ろ向きな解決はしたくない。 とはいえ、いい加減面倒になってきたので私は下記の方法で解決しました。
- VirtualBox 5.0.26とVagrant 1.8.4に戻す
- /Users/me/.vagrant.dディレクトリーのinsecure_private_keyファイルを削除
以上。
私のVagrant実行環境はOS Xなのでユーザーディレクトリーは/Users/me/などにあります。このディレクトリーに.vagrant.dというVagrantの関連ファイルが置かれているパスにinsecure_private_keyという秘密鍵が記録されているファイルがあるので、このファイルを削除しました。このファイルは削除されると次にvagrant upされた時に再作成されます。
例えば以下のパスにVagrantfileがある場合、
/Users/me/vagrant/cent1/Vagrantfile
vagrant upすると、Vagrantfileがあるルートディレクトリの.vagrantディレクトリーの奥深くにprivate_keyがコピーされるのですが、これが/Users/me/.vagrant.d
ディレクトリーのinsecure_private_keyファイルと異なるとSSH接続できなくなるようです。うっかり、Vagrantの構成ファイルの.vagrantディレクトリーを消してしまったのかのかなあ。
ちなみに解決するまでにやったことを書いてみます。全然うんともすんとも言わなくて大変でした。
- Vagrantのバージョンを1.8.5に更新 →NG
- VirtualBoxが古かったのでVirtualBox 5.0.26に更新 →NG
- VirtualBox 5.1.2に更新 →NG
- もしかしてVagrant 1.8.5のバグ?と思い、1.8.4にダウングレード →NG
- VirtualBox 5.1.2からVirtualBox 5.0.26にダウングレード(5.1対応はVagrant 1.8.5からのため) →NG
- /Users/me/.vagrant.dディレクトリーのinsecure_private_keyファイルを削除 →OK
ただ、解決したのに新たにVagrantのバージョンを1.8.5に更新したら再発しました。やっぱりVagrantのバージョン1.8.5のバグなのかなあ?
レポートしたけどどうだろう?伝わるかなこの程度で。