Warning Authentication failure. Retrying...
问题现象:
在导入别人的box或者自己制作的box之后,经常会出现认证失败的问题,如以下报错:
问题原因:
从字面意思上看是认证失败,其实根本原因是该box的私钥和vagrant的公钥不匹配
解决思路:
先排查私钥,查看vagrant配置私钥的路径以及文件名字
在项目文件夹中执行以下命令(此时没有ssh到虚拟机里)
$vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2202
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/yangzhiqiang/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
查看到私钥是insecure_private_key,但是如何去查看它是否和公钥匹配呢,我的做法是,先进入这个目录,删除掉私钥。
重启虚拟机vagrant reload,
私钥重新生成,如果问题仍然存在,那么肯定是公钥有问题。
公钥有问题的解决办法:
1.先进入虚拟机 vagrant ssh,因为认证失败,需要手动输入密码vagrant
2.进入虚拟机之后,进入vagrant共享目录,重新下载公钥
cd /home/vagrant
sudo -u vagrant wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O .ssh/authorized_keys
sudo -u vagrant chmod 700 .ssh
sudo -u vagrant chmod 600 .ssh/authorized_keys
sudo -u vagrant chown -R vagrant:vagrant .ssh
重启vagrant,问题解决。
网友评论