しばたテックブログ

気分で書いている技術ブログです。

Vagrant 1.8.5でLinux boxをvagrant upするとエラーが出る件について

ちょっとハマったのでメモ。

環境

今回の環境は以下。

  • ホスト: Windows 10 Pro(64bit)
  • Virtualbox 5.1.0
  • Vagrant 1.8.5
  • ゲスト: bento/centos-7.1 のBox

起きたこと

Vagrantfileを書いてvagrant upをした際に、

default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...

(以下リトライが続く...)

といった感じのメッセージが出て、VMは立ち上がるもののVagrantからの設定が上手くいかない現象に遭遇しました。

原因

原因はVagrant 1.8.5のバグでした。

github.com

にissueが上がっており既に修正済みで次のバージョン(1.8.6)で対処されるとの事です。

対処方法

この問題を修正したcommit

github.com

にある様に、[インストール先]\embedded\gems\gems\vagrant-1.8.5\plugins\guests\linux\cap\public_key.rbの56行目に

chmod 0600 ~/.ssh/authorized_keys

を追加してからVMを再作成してやれば直ります。

私は試していないのですが、修正内容を見るにauthorized_keysのアクセス権設定なので、VMにログインして直接設定を変更しても対処できる気がします。

また、

github.com

で41行目の

Tempfile.open("vagrant-bsd-remove-public-key") do |f|

の部分も修正されているのですが、こちらはそのままでもこの問題は解決する様です。

最後に

Vagrant 1.8.6がリリースされれば解決する問題ですが、リリースまでもうちょっとかかりそうなのでこのエントリを残しておきます。