背景
Vagrant 1.7〜 での SSH 鍵の扱い
Vagrant 1.7 以降では、vagrant up
時に旧来の insecure_key
を検知した場合、その仮想マシン用の別の鍵ペアを生成して insecure_key
を置き換える。
生成した秘密鍵は .vagrant/machines/default/virtualbox/private_key
に置かれ、それ以降そのマシンへのアクセスは新しい鍵が使われるようになり、insecure_key
での SSH はできなくなる。
vagrant package
vagrant package
コマンドはその時点の仮想マシンイメージをファイルにエクスポートする。
よく使うプロビジョニングを済ませた状態の box を作っておいて、vagrant box add
して効率よく使いまわしたりができる。
注意点
よく使うプロビジョニングを Vagrant で済ませようとして、
- どこかで
vagrant up
して中身をもにょもにょ (Vagrant 1.7使用) vagrant package
vagrant box add myprebuildbox ./package.box
とかやるとすると
別のところで myprebuildbox
を vagrant up
しようとした時に、box の中身の公開鍵が insecure_key
から差し替えられていることで、デフォルト設定で起動できないことになる。
なので、vagrant package
するつもりの仮想マシンは、insecure_key
を置き換えないように、config.ssh.insert_key = false
して置くのが無難
Vagrant 公式ドキュメント http://docs.vagrantup.com/v2/vagrantfile/ssh_settings.html より
This only has an effect if you don't already use private keys for authentication or if you are relying on the default insecure key. If you don't have to take care about security in your project and want to keep using the default insecure key, set this to
false
.