vagrant up default: Warning: Authentication failure. Retrying... 的一些解决办法

一般看到这个信息时,虚拟机已经启动成功,可以中断命令后 vagrant ssh 登录试试

如果失败,修改 vagrant 工作目录下的 Vagrantfile 文件,在 config.vm.box ="XXX……" 下添加 config.ssh.password ="vagrant" 然后重新 vagrant ssh 登录。

仍然失败,应该是虚拟机关闭了 ssh 密码登录方式,可以打开 VirtualBox 窗口右击你要登录的虚拟机,点击“显示”按钮,打开 VirtualBox 虚拟机登录窗口,输入账户和密码(默认都是 vagrant)进入系统。修改 /etc/ssh/sshd_config 文件,注释 PasswordAuthentication no 这一行后重启 sshd 服务,然后 vagrand ssh 就可以登录了

免密登录有两种方式,一种是自己生成私钥公钥,把私钥写入虚拟机的 /home/vagrant/.ssh/authorized_keys 文件下,并在 Vagrantfile 中以 config.ssh.private_key_path="xx/xx" 方式设置公钥路径。

另一种是将官网提供的公钥写入虚拟机中:
sudo -u vagrant wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys。然后 vagrant reload ,系统就会自动删除刚刚插入的公钥并完成公私钥生成,公钥插入虚拟机,设定主机私钥路径等操作。

需要注意的是 ,authorized_keys 的权限必须设置成除了属主 vagrant 以外,group 和其他用户都不可写状态:chmod go-w authorized_keys。

vagrant package 打包的时候最好把 sshd 密码登录方式设置为 true,官网公钥写入 authorized_keys 中并设置好权限,这样启动使用这个 box 的时候系统免密登录一步完成,没那么多麻烦事。