如何将 vagrant 中的 ssh 身份验证方法从密码更改为私钥?

如何将 vagrant 中的 ssh 身份验证方法从密码更改为私钥?

我在 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 将生成新的私钥/公钥对。未经验证。

相关内容