vagrant で
$ vagrant halt
[default] Attempting graceful shutdown of VM...
SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.
こんなエラーが出た時の対処方。
環境は
- ホスト: Mac (OSX 10.8.3)
- ゲスト: Ubuntu 10.04.4 LTS
やりたいこと
- vagrant up で起動した VM に ssh を使った password-less ログインしたい
- vagrant halt に成功したい
やっていたこと
- ゲスト側の
~/.ssh/authorized_keys
にホスト側の公開鍵を書いておく - ゲスト側の
~/.ssh/authorized_keys
の権限を 600 にしておく - ホスト側の
~/.vagrant.d/insecure_private_key
の権限が (user):staff になっている事を確認
解決の仕方
以下を参考
virtualbox - SSH Basics on Vagrant VMs - Super User
ホスト側の ~/.vagrant.d/boxes/<yourbox>/include/Vagrantfile
に、秘密鍵のパスを設定する必要があるらしい。
その部分はこんな感じに書いた。
Vagrant::Config.run do |config|
# This Vagrantfile is auto-generated by `vagrant package` to contain
# the MAC address of the box. Custom configuration should be placed in
# the actual `Vagrantfile` in this box.
config.vm.base_mac = "XXXXXXXXXXXX"
config.ssh.private_key_path = "~/.ssh/id_rsa" # ここを追加
end
念のためホスト側の ~/.ssh/id_rsa.pub
をゲスト側の ~/.ssh/authorized_keys
にコピーしなおしたら、password-less ログインも vagrant halt もうまくいった。
めでたしめでたし。