おじいちゃんまでイキイキぶろぐ

So it is said that if you know your enemies and know yourself, you will not be put at risk even if you have a hundred battles. If you only know yourself, but not your opponent, you may win or may lose. If you know neither yourself nor your enemy, you will

Vagrant+VirtualBoxで"Warning: Authentication failure. Retrying…"を解決する方法

久しぶりにローカルでVargrant+VirtualBoxで仮想環境立てた時に

ハマったのでメモがてら...

まずは必要なもののインストール

Vagrant

https://www.vagrantup.com/downloads.htmlから最新版をインストール。

VirtualBox

https://www.virtualbox.org/wiki/Downloadsから最新版をインストール。 仮想環境の作成は Vagrant から行う。

仮想マシンの作成

今回は CentOS6.5 の イメージファイルを使います。 また、仮想環境の作成先ディレクトリは ~/develop/app としました。

$ vagrant box add centos6.5 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
$ mkdir ~/develop/app
$ mkdir ~/develop/app
$ cd ~//develop/app
$ vagrant init centos6.5

仮想マシンにアクセスする

あとは下記のコマンドで仮想マシンにアクセスできるはず...

$ vagrant up
$ vagrant ssh

しかし、

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2200
    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...
    default: Warning: Authentication failure. Retrying...
    default: Warning: Authentication failure. Retrying...

default: Warning: Authentication failure. Retrying...???? どうやら認証が上手く行っていないみたいです。

原因と解決法

原因

.sshdディレクトリのパーミッションが不適切だった

解決方法

ゲストOS(今回だとCentOS6.5)の.sshdディレクトリのパーミッションの変更をしましょう

$ chmod 0700 /home/vagrant/.ssh
$ chmod 0600 /home/vagrant/.ssh/authorized_keys
$ chown -R vagrant /home/vagrant/.ssh

最後に

今回の原因以外にもSSH秘密鍵と、ゲストOSで設定されている公開鍵があっていないことも考えられるのでこれで解決しない場合は下記の記事も参考にしてみてください。 Vagrantで”Warning: Authentication failure. Retrying…”のエラーが出た時の対処法

参考: Vagrant で Ruby on Rails 4 の環境構築 vagrant upコマンド実行時にAuthentication failure.エラーが発生する Vagrantで”Warning: Authentication failure. Retrying…”のエラーが出た時の対処法