1、安装vagrant和virtualbox后,下载对应版本的box文件,virtualbox官网有支持列表。
2、过程 a.
vagrant box add ubuntu16_04 e:\Ubuntu16.04-xenial-server-cloudimg-amd64-vagrant.box
导入box文件
b. vagrant init 然后修改vagrantfile , 修改此处config.vm.box = "ubuntu16_04"
取消注释: config.vm.network "private_network", ip: "192.168.33.10"
取消注释:

c. vagrant up,这时出现错误啦。 default: Warning: Authentication failure. Retrying...
d. 修改此处,但不起作用。是修改vagrantfile添加上这两条
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
然后vagrant reload 仍不起作用,很久之前我用过类似方法,能成功,但现在却不成功了。
3、打开git-bash,生成秘钥
ssh-keygen -m PEM -t rsa -b 4096
一路回车,为何此处不用简单的 ssh-keygen生成秘钥?试过了,会报错,因为这样生成的私钥id_rsa的第一行变成了“BEGIN OPENSSH PRIVATE KEY” 而不在是“BEGIN RSA PRIVATE KEY”,
vagrant reload时会报错,因为此文件此处会报错,77行,就是说找不到pkey,其实就因为第一行是openssh而不是rsa
查看此目录c:/users/xxx/.ssh/下是否生成 id_rsa.pub , id_rsa两个文件
在终端一直输出错误的同时,打开virtualbox,在对应的系统上右键点显示,进入系统输入账号密码vagrant,来到已下目录
/home/vagrant/.ssh/
可见里面有个文件authorized_keys,思否上说此时可以用ssh软件连上vbox,实测不能。那怎么办呢?怎么把上面生成的id_rsa.pub拷贝过来呢?
可以在主机上开个http服务,把id_rsa.pub放到上面,在vbox里下载过来,不要告诉我你主机不会开http服务,一般能用到vagrant了,肯定是主机早就用过http服务了。
我主机用的是nginx,于是拷贝到html文件件里,在vbox里
wget http://192.168.33.1/id_rsa.pub
复制并覆盖vbox里.ssh文件夹里的authorized_keys,并修改权限为600。
修改vagrantfile,最后的end前加入此句:
config.ssh.private_key_path = "C:/Users/xxx/.ssh/id_rsa"
config.ssh.forward_agent = true
xxx改成自己的。
4、此时用终端连接软件连接127.0.0.1,2222端口,例如xshell,会弹出