vagrant sshしたら真っさらなサーバーになってしまうバグ
原因
virtualbox のマシンとvagrant の紐付けが解除されてしまってる
なんで解除されるかは不明
解決方法
まず virtualbox マネージャを立ち上げて同じ名前でIDが違うマシンを電源オフる
以下のコマンドを実行
$ VBoxManage list vms
マシン一覧が表示される
その中で、紐付けが解除されてしまって再度紐付けしたいマシンのidをコピーする
例えば
"meat_default_1490979151604_7470" {7bbd1077-4d67-4a7f-9576-9191fbe837c3}
であれば
{}
の中の文字列です
Vagrantfile があるディレクトリに移動して
以下を実行
$ cd .vagrant/machines/default/virtualbox
$ vi id
先程メモったidをペーストする。
Vagrantfile があるディレクトリに移動
一旦止める
$ vagrant halt
起動
$ vagrant up
すると
default: Warning: Connection timeout. 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...
が無限ループされてssh できなくなっていると思う。
これは鍵が変わってしまっているのでこうなる。
コントロール+ c で抜けて
$ vagrant ssh
してパスワード認証でログインする。
mac側で
$ cd .vagrant/machines/default/virtualbox
移動して
$ ssh-keygen -t RSA
で鍵を新たに作る。
一応、
private_key2
などの名前で保存、前のやつは残しておいた。
そのあとに 同じディレクトリに作成された公開鍵を
仮想マシンのほうの authorized_keys に貼り付ける。
んでmac側にある Vagrantfileに以下を記述
config.ssh.private_key_path = "/[Vagrant file があるディレクトリ]/.vagrant/machines/default/virtualbox/private_key2"
それで
$ vagrant halt
$ vagrant up
$ vagrant ssh
問題なくssh でログインできるかと思う