概要
vagrant起動時に、下記のエラーが出る場合の対処方法。
Authentication failure. Retrying…
原因・対処策
vagrant起動時に生成されるSSH秘密鍵と、OS上の公開鍵がマッチしてないのが原因なので、公開鍵を生成して、OS上にセットしなおす。
環境
- Vagrant 1.8.1
SSH公開鍵を生成
秘密鍵から公開鍵を生成し、対象パッケージのOSの中に設置する。
1.秘密鍵を確認
$ vagrant ssh-config
(**snip**)
IdentityFile xxxx/vagrant_private_key
(**snip**)
2.公開鍵を生成
IdentityFileに表示された秘密鍵ファイルを使って、公開鍵を生成する
$ ssh-keygen -yf xxxx/vagrant_private_key > public_key
$ ls | grep public_key
public_key # 生成されたことを確認
3.ゲストOSに生成した公開鍵を設定する
ユーザーのホームディレクトリの~/.ssh/authorized_keys
の中身を、先ほど生成した公開鍵に書き換える。
$ vagrant ssh
$ cd ~
vagrantユーザー以外でログインする場合は、該当ユーザーのホームディレクトリ直下に.sshディレクトリを作る。パーミッションは重要なので、下記の通りにする。
$ mkdir .ssh
$ chmod 700 .ssh
$ chmod 600 authorized_keys
生成した公開鍵に書き換える。
$ vi authorized_keys
$ exit
4.Vagrantfileに追記
$ vi Vagrantfile
# ログイン情報、鍵の設定
config.ssh.guest_port = 22
config.ssh.username = "vagrant" # vagrantユーザーでない場合は指定
config.ssh.host = "127.0.0.1"
config.ssh.private_key_path = "xxxx/vagrant_private_key"
5.Reload
$ vagrant reload
以上
[参考]
Package化したboxを使うときによく出るエラー
Vagrant で作った VM にやってはいけない2つのこと