ubuntu xenial64 盒子密码?

ubuntu xenial64 盒子密码?

这可能是一个愚蠢的问题,但是

我之前曾在 vagrant 中使用过 trusty64 框,并且尝试过 xenial64 框,但它不接受通常的用户:vagrant 密码:vagrant login?

答案1

正如用户 @prometee 在此启动板讨论中提到的那样#1569237,您可以在以下位置找到密码:

~/.vagrant.d/ubuntu-VAGRANTSLASH-xenial64/20161221.0.0/virtualbox/Vagrantfile

或者:

~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20161221.0.0/virtualbox/Vagrantfile

取决于你的 Vagrant 版本。(请注意,20161221.0.0路径部分将根据下载框的时间而有所不同。此外,你的目录中可能有多个。)

这是我的(第 8 行):

# Front load the includes
include_vagrantfile = File.expand_path("../include/_Vagrantfile", __FILE__)
load include_vagrantfile if File.exist?(include_vagrantfile)

Vagrant.configure("2") do |config|
  config.vm.base_mac = "022999D56C03"
  config.ssh.username = "ubuntu"
  config.ssh.password = "fbcd1ed4fe8c83b157dc6e0f"

  config.vm.provider "virtualbox" do |vb|
     vb.customize [ "modifyvm", :id, "--uart1", "0x3F8", "4" ]
     vb.customize [ "modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "ubuntu-xenial-16.04-cloudimg-console.log") ]
  end
end

仅供参考,用户@racb 在同一讨论中提到this bug report having been filed 到 ubuntu到目前为止no [...] decision has been made yet

答案2

昨天我绞尽脑汁想了半天,才意识到自己运行的是旧版本的 Virtualbox (5.0.x) 和 Vagrant (1.8.0)

更新至 VirtualBox 5.1.x 和 Vagrant 1.8.7 并获得更好的结果

基本上,ubuntu/xenial32ubuntu/xenial64图像是有缺陷的,因为它们不是随vagrant用户开箱即用的。

这是针对 Vagrant规格

我最终v0rtex/xenial64按照建议使用了此错误报告。不知道为什么canonical不修复这个问题

我的流浪文件如下

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

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "v0rtex/xenial64"

  config.vm.network :private_network, ip: "10.10.10.10"

  config.ssh.username = 'vagrant'
  config.ssh.password = 'vagrant'

  config.vm.provider :virtualbox do |vb|
     vb.name = "supercool"
     vb.customize ["modifyvm", :id, "--memory", "768"]
     vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end

end

如果您仍想使用canonical提供的图像,可以使用以下方法

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

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  config.vm.box = "ubuntu/xenial64"

  config.vm.network :private_network, ip: "10.10.10.10"

  config.ssh.insert_key = true
  config.ssh.forward_agent = true

  config.vm.provider :virtualbox do |vb|
     vb.name = "supercool"
     vb.customize ["modifyvm", :id, "--memory", "768"]
     vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  end

end

如果你这样做,/vagrant文件夹将归ubuntu:ubuntu而不是所有vagrant:vagrant。如果你的脚本依赖于vagrant用户,它们将会中断

答案3

已于最后修复(2018/01/13):https://bugs.launchpad.net/cloud-images/+bug/1569237/comments/111

您可能想要运行vagrant box update然后vagrant destroy

答案4

ubuntu/xenial64镜像没有默认用户名和密码。但是,您可以使用在 vagrant 文件夹中生成的 ssh-key 进行 ssh 连接。

假设你的 Vagrantfile 位于/vagrant/vm01/Vagrantfile,则 ssh-key 位于/vagrant/vm01/.vagrant/machines/..../private_key

你可以使用这个登录到你的 vagrant vm private_key。如果客户机要求输入密钥的密码,只需点击ENTER(指定一个空白密码)。例如,在我的 Mac 上:

ssh -i /vagrant/vm01/.vagrant/..../private_key <your vm ip> <your vm port>

如果你还是想使用用户名和密码登录,在使用 private_key 登录后,你可以添加自己的用户,以便稍后登录:

# create a user for log in
sudo useradd yourusername

# specify a password
sudo passwd yourusername
# then type your password when prompted

# add the user to sudo group
sudo adduser yourusername sudo    

# create a home folder for your user
sudo mkdir /home/yourusername

# add a shell command for your user (normally /bin/bash)
sudo vim /etc/passwd
# find yourusername line, and add /bin/bash to the end.
# the end result would look like this:
yourusername:x:1020:1021::/home/yourusername:/bin/bash

现在您可以使用新的用户名和密码进行 ssh。

相关内容