我在 Mac OS(10.10.3) 上安装了 Snappy Ubuntu Core(15.04 stable),针对 docker 运行 vagrant(1.7.2),使用 VirtualBox 4.3.28 作为提供程序。
我可以通过 Mac 终端中的私钥方法在 Ubuntu 客户操作系统中手动 ssh。
但是“vagrant ssh”命令坚持使用密码方法,我不知道如何更改身份验证方法。
vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'ubuntu/ubuntu-15.04-snappy-core-stable' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: bridged
==> default: Forwarding ports...
default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 192.168.0.13:2222
default: SSH username: ubuntu
default: SSH auth method: password
default: Warning: Connection refused. Retrying...
default: Warning: Connection refused. Retrying...
我已经阅读过关于 ssh 设置的 vagrant 文档,但没有找到与“auth 方法”相关的内容。
我的“vagrant ssh-config”结果如下:
vagrant ssh-config
Host default
HostName 192.168.0.13
User ubuntu
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/brady/spa/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
它显示密码验证已被禁用,但似乎在“vagrant up”/“vagrant ssh”中不起作用。
这里显示了 vagrant 私钥文件的访问权限,对我来说没有什么可疑的。
-rw-r--r-- 1 brady staff 1.6K May 24 14:08 private_key
答案1
这可能是 Ubuntu 14.04 vagrant box 的一个 bug。关联
我更改了客户操作系统上的公钥(客户虚拟机 Ubuntu 14.04 上的 ./ssh/authorized_keys)以与主机操作系统上的私钥配对,然后 vagrant 就可以正常工作了。
另一个解决方案是删除主机操作系统中现有的私钥/公钥对,vagrant 将生成新的私钥/公钥对。未经验证。