Vagrant upした時にAuthentication failureになった
最近Vagrantを立ち上げることが増えてきたので、その時にハマったメモを。
今までの記事のような解説スタイルではないのであしからず。
起きたこと
Vagrantfileにこんな感じで記載して
❯ cat Vagrantfile Vagrant.configure("2") do |config| config.vm.box = "centos-6.4" config.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/centos-64-x64-vbox4210.box" config.vm.hostname = "ressy-host"
vagrant init
(Vagrantfileを作成する)を実行する
❯ vagrant init A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.
そんで仮想マシンを立ち上げようとしたら。。。
❯ vagrant up Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'centos-6.4' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0 ... 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... 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... default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
が何度も表示されてvagrant up
が完了しない。
という状態になりました。
※ 'vagrant ssh'で仮想マシンに入ることはできました。
sshまわりの設定を疑う
vagrant up
が終了しないので、ctrl + C
で中断。
default: Key inserted! Disconnecting and reconnecting using new SSH key... default: Warning: Authentication failure. Retrying...
この辺のメッセージでググると、仮想マシンのssh周りの設定が影響していることが多いらしい。
例えばこの記事によると、「秘密鍵と仮想マシン内の公開鍵がマッチしていない」ということが起きて、起動に失敗することがあるらしい。
詳細はリンク先の記事を参照。
vagrant up でAuthentication failure. Retrying... · NetCommons3/NetCommons3 Wiki · GitHub
なので、公開鍵の中身を確認してみる。
❯ vagrant ssh-config Host default ... IdentityFile <秘密鍵へのパス>/private_key ...
秘密鍵の場所がわかったので、公開鍵を生成(表示だけ)してみる。
❯ ssh-keygen -yf <秘密鍵へのパス>/private_key ssh-rsa AAAAB3Nz......
続いて、仮想マシン内の公開鍵を見ている。
vagrant up
は正常終了していませんが、vagrant ssh
で仮想マシンに入ることはできるみたい。
❯ vagrant ssh vagrant@127.0.0.1's password: Welcome to your Vagrant-built virtual machine. [vagrant@localhost ~]$
っで、authorized_keysを見てみる。
[vagrant@localhost ~]$ cat .ssh/authorized_keys ssh-rsa AAAAB3Nz......
一緒だった。
秘密鍵と公開鍵は一致しているけど認証ができてないってことか。
.ssh/authorized_keys
のパーミッションが怪しいと踏んだので見てみる。
[vagrant@localhost ~]$ ls -l .ssh/authorized_keys -rw-rw-r-- 1 vagrant vagrant 389 11月 12 04:30 2016 .ssh/authorized_keys
664
になってた。
これが原因っぽいのでパーミッションを600
になおす。
[vagrant@localhost ~]$ chmod 600 .ssh/authorized_keys
Vagrantをあげ直してみる。
❯ vagrant halt ❯ vagrant up
今度はうまくいった。
色々気になるところはあったけど、とりあえず起動したのでよし。
最後に
今日は自分がVagrant周りをいじった時にうまくいかなかった部分の殴り書きメモを書かせていただきました。
そういえば、Vagrantについては解説の記事とかは書いていませんね(勉強中ですが)。
近々、Vagrantって何?みたいな記事を書こうと思います。