vagrant ssh没有按预期工作,它不符合我的自定义设置

时间:2015-04-10 23:31:31

标签: ssh vagrant vagrantfile

首先,我为我的流浪盒设置了一个单独的ssh密钥。 我在〜/ .ssh / config

上进行了此设置
Host    vag_ubuntu14
HostName 127.0.0.1
Port    2222
User    vagrant
IdentityFile ~/.ssh/vag_ubuntu14/id_rsa

我用这个命令将公钥复制到了流浪盒的〜/ .ssh / authorized_keys

cat ~/.ssh/vag_ubuntu14/id_rsa.pub | ssh -p2222 vagrant@127.0.0.1 'cat > ~/.ssh/authorized_keys'

因此,当ssh vag_ubuntu14按预期运行时。 但是运行vagrant ssh到ssh到流浪者盒子并不起作用。它会导致身份验证失败。

这是我当前的Vagrant文​​件,其中指定了私钥的路径。

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu14_04"

  config.vm.provider "virtualbox" do |vb|
    vb.name = "Ubuntu 14.04"
  end

  config.vm.provision :shell, path: "provision/bootstrap.sh"

  config.ssh.private_key_path = '/home/chris/.ssh/vag_ubuntu14/id_rsa'

end

但是当我运行vagrant ssh-config时,它并不尊重我在Vagrantfile上指定的私钥的自定义路径。

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/chris/ubuntu14_04/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

1 个答案:

答案 0 :(得分:7)

对于遇到同样问题的人。我发现解决方案很简单。

您要在Vagrantfile上自定义私钥位置的配置。您必须先删除默认私钥。

您可以通过运行以下方式查看私钥的位置:

`vagrant ssh-config`

删除 IdentityFile 上指定的私钥。

Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /home/chris/ubuntu14_04/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

如果您删除了预装在流浪盒上的私钥,则只需在Vagrantfile上指定新私钥的位置。

config.ssh.private_key_path = 'location of your private key'

要检查您的新私钥是否已被读取,请再次运行vagrant ssh-config