Vagrant机器无法通过ssh对我新创建的用户进行身份验证

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vagrant机器无法通过ssh对我新创建的用户进行身份验证相关的知识,希望对你有一定的参考价值。

我的vagrantfile看起来像这样:

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

vagrant_home = "/home/vagrant/"
local_share = "#{ENV['HOME']}"

unless Vagrant.has_plugin?("vagrant-vbguest")
  puts "Vagrant plugin 'vagrant-vbguest' is not installed!"
  puts "Execute: vagrant plugin install vagrant-vbguest"
end

unless Vagrant.has_plugin?("vagrant-sshfs")
  puts "Vagrant plugin 'vagrant-sshfs' is not installed!"
  puts "Execute: vagrant plugin install vagrant-sshfs"
end

Vagrant.configure("2") do |stage|
    stage.vm.box = "centos/7"
    stage.vm.hostname = "HSS-IAAS-VB"
    stage.vm.box_check_update = true
    stage.vm.network "private_network", :type => 'dhcp'
    stage.vm.provider "virtualbox" do |vb|
      vb.name = "centos7-dev"
      vb.gui = false
      vb.memory = "1024"
    stage.ssh.keys_only = false
    stage.ssh.username = "#{ENV['USER']}"
    stage.ssh.forward_agent    = true
    stage.ssh.insert_key       = true
    stage.ssh.private_key_path =  "#{ENV['HOME']}/.ssh/id_rsa" , "/home/#{ENV['USER']}/.ssh/id_rsa
    stage.vm.provision :shell, privileged: false do |s|
      ssh_pub_key = File.readlines("#{Dir.home}/.ssh/id_rsa.pub").first.strip
      s.inline = <<-SHELL
        echo #{ssh_pub_key} >> #{ENV['home']}.ssh/authorized_keys
        sudo bash -c "echo #{ssh_pub_key} >> #{ENV['home']}/.ssh/authorized_keys"
      SHELL
    end
  end
end

我的问题是,当我运行这个vagrantfile时,我收到一个错误,指出以下内容:default: Warning: Authentication failure. Retrying...,如果我在调试模式下运行,我只看到一堆超时..

我想要做的就是创建一个“流浪”用户,而不是通过使用#{ENV['USER']}创建一个与主机上的用户相同的用户,并让用户立即能够运行vagrant ssh,如果他们的host用户是test.user,那么guest用户将是test.user ..

vagrant ssh-config是:

Host default
  HostName 127.0.0.1
  User aaron.west
  Port 2200
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /Users/aaron.west/.ssh/id_rsa
  IdentityFile /Users/aaron.west/.ssh/id_rsa
  LogLevel FATAL

所有帮助表示赞赏:)

答案

我相信你必须在你的Vagrant机器上创建一个新用户。根据ssh.username设置的文档,听起来并不像设置实际创建用户。它只能帮助您告诉Vagrant要连接的用户,如果该框是使用除了vagrant之外的用户名。

您可能需要在配置期间向useradd发送消息。

以上是关于Vagrant机器无法通过ssh对我新创建的用户进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Vagrant 1.9.6挂起命令“vagrant ssh”

Ubuntu 16.04 - Vagrant Box问题:ssh_exchange_identification:读取:通过对等方重置连接

如何将自己的公钥添加到 Vagrant VM?

如何通过“vagrant ssh”使用 ssh 代理转发?

无法更改 vagrant 主文件夹中文件夹的权限

无法通过运行 OpenSSH 的 SSH 连接到 Windows 10