vagrant在第一次''vagrant up'时问密码

cul*_*8er 5 vagrant

我为CentOS 6.6制作了我的自定义流浪盒.我的问题是为什么当我第一次"迷失"时,流浪汉总是需要密码.这是控制台日志:

$ vagrant up
Bringing machine 'ns' up with 'virtualbox' provider...
==> ns: Clearing any previously set forwarded ports...
==> ns: Clearing any previously set network interfaces...
==> ns: Preparing network interfaces based on configuration...
    ns: Adapter 1: nat
    ns: Adapter 2: hostonly
==> ns: Forwarding ports...
    ns: 22 => 2222 (adapter 1)
==> ns: Running 'pre-boot' VM customizations...
==> ns: Booting VM...
==> ns: Waiting for machine to boot. This may take a few minutes...
    ns: SSH address: 127.0.0.1:2222
    ns: SSH username: vagrant
    ns: SSH auth method: private key
    ns: Warning: Connection timeout. Retrying...
    ns: Warning: Connection timeout. Retrying...
    ns: Warning: Remote connection disconnect. Retrying...
Text will be echoed in the clear. Please install the HighLine or Termios libraries to suppress echoed text.
vagrant@127.0.0.1's password: 
Run Code Online (Sandbox Code Playgroud)

如你所见,vagrant要求输入密码.我打字后继续.在那之后,只要我'流浪',流浪者就不会问它.这种情况仅在第一次"流浪"时发生.我想知道我的自定义框的设置,也许ssh,是错误的,但不明白问题出在哪里.

谁能猜出可能的原因?

环境:流浪者的版本是1.7.2.主机操作系统是ubuntu 15.04,客户操作系统是CentOS 6.6.

bla*_*ops 2

Vagrant 无法自动登录时会要求输入密码。最明显的原因是 Vagrant 没有用户 vagrant 所需的用户密钥。然后你输入正确的密码,vagrant 交换密钥。后来这个就不再出现了。此密钥交换是每个实例的管理器,因此如果您销毁/删除该实例,那么下次您再次要求手动登录。

Vagrant 在 Github 上提供了一个不安全的密钥,任何分布式的公共可用的 Vagrant 盒子都与它打包在一起。您可以通过在机器内执行以下命令来放置此密钥:

wget https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用您自己的私钥并配置 Vagrantfile 以使用特定密钥: Vagrant SSH Config

Vagrant 本身会立即识别并交换不安全的密钥,并将其交换为安全的密钥。因此,您必须使用Hashicorp Packer设置此密钥。