vagrant 之 insecure key

vagrant package 有两种方式,一种基于虚拟机名字的,一种基于vagratfile的。

对于自己安装的虚拟机,如果已经在使用privatekey的方式在登录了,那么package的时候,虽然该privatekey也能被打包,但是会认为该privatekey是打包的人提供的,不够安全,所以,会认为

 

正确的打包方式:

  1. 基于Vagrantfile打包,Vagrantfile中不要设置privatekey_path ,而是设置config.ssh.username 和 config.ssh.password ,并且虚拟机是开机状态
  2. vagrant package –vagrantfile Vagrantfile –output my.box
    此时,会自动生成一套全新的秘钥对,并且注入到虚拟机内,如下:
  3. 然后自动关机并打包

(尽管如此,使用同一个box的人使用的秘钥不还是一样的吗?不还是不安全的吗?暂且不管这么多了,至少每次启动新的虚拟机都能正常进入并完成初始设置)

使用该box启动新的虚拟机:

可见,该虚拟机有自己的private_key了

 

就算打包的时候没有重新生成privatekey,如果在创建虚拟机的vagrantfile中指定了ssh的用户名密码,在启动虚拟机的时候,也能自动删掉不安全的privatekey,并且自动写入一个新生成的privatekey,如下:

查看ssh-config:

可见,私钥写在了自己的目录下了(但是,这里还证明不了pubkey确实从guest中移除了,至少现在在guest中有两个pubkey)

如果在vagrant up的时候,由于某种原因没有能Insert一个安全的密码,在问题解决后,即使是在vagrant halt,如果发现存在不安全的key,也会即使更新能安全的key的:

关键点: 每次打包的时候,vagrantfile中指定用户名和密码

 

privatekey是否安全似乎是根据privatekey文件名判断的,后来打包的时候也没有重新生成privatekey

正解:

 

关键是,折腾了好几天,原来的镜像又好使了,啥问题没发现,xxx

注: virtualbox的动态磁盘一旦被撑大就回不去了,打包后的vbox,压缩也压缩不了

 

留下评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据