読者です 読者をやめる 読者になる 読者になる

ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

いくらvagrant upしてもAuthentication failure. Retrying...の繰り返ししだったのを解決した話

[2016/7/24 追記] Vagrant 1.8.5のバグ(GH7610/GH7611)だったようです。masterでは修正しているということなので、リリースされるまではVagrant 1.8.4を使いましょう。

ふとVagrantLinuxをデプロイしようと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...

調べたところ、次のような解決のヒントを見つけました。

github.com

teamtreehouse.com

もしくは諦めてパスワード認証するように設定することでも回避できそうです。

www.vagrantup.com

ただ、そんな後ろ向きな解決はしたくない。 とはいえ、いい加減面倒になってきたので私は下記の方法で解決しました。

以上。

私の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ディレクトリーを消してしまったのかのかなあ。

ちなみに解決するまでにやったことを書いてみます。全然うんともすんとも言わなくて大変でした。

  1. Vagrantのバージョンを1.8.5に更新 →NG
  2. VirtualBoxが古かったのでVirtualBox 5.0.26に更新 →NG
  3. VirtualBox 5.1.2に更新 →NG
  4. もしかしてVagrant 1.8.5のバグ?と思い、1.8.4にダウングレード →NG
  5. VirtualBox 5.1.2からVirtualBox 5.0.26にダウングレード(5.1対応はVagrant 1.8.5からのため) →NG
  6. /Users/me/.vagrant.dディレクトリーのinsecure_private_keyファイルを削除 →OK

ただ、解決したのに新たにVagrantのバージョンを1.8.5に更新したら再発しました。やっぱりVagrantのバージョン1.8.5のバグなのかなあ?

レポートしたけどどうだろう?伝わるかなこの程度で。

github.com