Vagrant导入box文件时认证失败

 default: SSH auth method: private key
 default: Warning: Remote connection disconnect. Retrying...
 default: Warning: Remote connection disconnect. Retrying...
 default: Warning: Authentication failure. Retrying...

网上搜索了2种方法

编辑Vagrantfile
在里面添加
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
使用用户名和密码登录之后,里面的login key会重设置
启动登录后,关掉虚拟机, 注释
# config.ssh.username = "vagrant"
# config.ssh.password = "vagrant"
a.打开终端 输入 ssh-keygen
然后系统提示输入文件保存位置等信息,连续敲三次回车即可,生成的SSH key文件保存在中~/.ssh/id_rsa;
b.ssh-add ~/.ssh/id_rsa 添加到证书列表;
c.在Vagrantfile文件添加
config.ssh.private_key_path = “~/.ssh/id_rsa”
config.ssh.forward_agent = true
用于vagrant ssh连接认证
d.在虚拟机~/.ssh/authorized_keys文件中追加本地机器”~/.ssh/id_rsa.pub”文件里面的内容;
e.vagant reload重启虚拟机就可以正常连接了

Vagrant更新VirtualBox Guest Additions到最新版本

升级Virtualbox到最新版本(5.1)后,up的时候提示VirtualBox Guest Additions版本低于当前Virtualbox版本。只要安装一个vagrant插件就可以启动的时候自动更新VirtualBox Guest Additions到最新了。
vagrant plugin install vagrant-vbguest

https://coderwall.com/p/mvf0a...


默认共享设置所有者、所属组和文件权限

Vagrantfile默认使用的是Virtualbox的共享,所以登录到虚拟机以后权限都是777,如果更改可以使用下面配置

    config.vm.synced_folder "../Code", "/srv/code",
      :owner: "www", :group: "www", #设置虚拟机文件所属者和所属组
      :mount_options => ["dmode=775", "fmode=664"] #设置文件权限

这里有个问题,默认是使用vagrant登录的,如果在挂载的目录里进行操作的话,可以把vagrant加到www用户组里或者切到root.


配置NFS

在Win下使用nfs也没怎么感觉有多快,目前来说默认的共享已经够用。

* 先安装nfs插件`vagrant plugin install vagrant-winnfsd`
* 配置Vagrantfile文件
  config.vm.synced_folder "../Code", "/srv/code", type: "nfs" #这行加入nfs选项
  config.nfs.map_uid = 1002 #这个是虚拟机里的用户id,比如www是1002
  config.nfs.map_gid = 1002
> 官方文档https://www.vagrantup.com/docs/synced-folders/nfs.html

PS:只是按以上设置后虚拟机里的文件夹和文件权限都是777,不知道如何才能像默认共享那样使用mount_options来设置


一个向往前端的后端工程师
1.3k 声望46 粉丝

一个向往前端的后端工程师