关于 Vagrant box ubuntu/xenial64 上的 ubuntu用户密码

请提供更详细的背景信息。

我想使用Ubuntu桌面,所以正在使用Vagrant的官方box ubuntu/xenial64创建环境。
我将Vagrant的config vb.gui = true设置为启动,然后尝试登录!
但是,当我以ubuntu:ubuntu尝试登录时,无法登录。
尝试了很多方法,但是还是无法登录。
不知道是怎么回事呢 _(:3 」∠ )_
用户:我完全不知道Ubuntu的密码呢( ; ; )

这里提醒大家注意 ubuntu 密码的挖掘过程。

結論

写入 ubuntu 用户密码的地方。

~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20170501.0.0/virtualbox/Vagrantfilez 中被记载。
config.ssh.username = "ubuntu"
config.ssh.password = "79eee261f17ac64e2481039d"z
这个密码是9eee261f17ac64e2481039d。

注意)
密码似乎会根据你的电脑和其他因素而改变。
请正确检查你的 .vagrant.d/ 文件,因为即使你使用了这里写的密码,也无法登录。

试图覆盖 Vagrantfile 中的密码
尝试重写 Vagrantfile 设置

通过在Vagrantfile的config部分直接设置config.ssh.password = ‘ubuntu’,尝试将密码强制设为ubuntu。

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/xenial64"

  config.ssh.username = 'ubuntu'
  config.ssh.password = 'ubuntu'

  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
  end
end

然后,我编辑了Vagrantfile并进行了尝试。

结果

好的,不行。

$ cat ~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20170501.0.0/virtualbox/Vagrantfile

# 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 = "02C9FD7CBFCE"
  config.ssh.username = "ubuntu"
  config.ssh.password = "79eee261f17ac64e2481039d"

  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

和之前的内容没有改变。
嗯,这个问题,我能想办法改写吗???

~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20170501.0.0/virtualbox/Vagrantfile
无法在 orz 中直接重写 config.ssh.password。

感想

目前,我只使用从 ~/.vagrant.d/ 目录中获取密码的方法。
不过,我觉得最好还是在 “配置 “中创建一个新用户,而不是使用默认创建的 ubuntu 用户。
不知道有没有更好的办法?

PS

在 Provisioning 中,我创建了一个 shell,以便添加用户。

#!/bin/bash
set -Ceu

USER="ocome"
# 用 SHA-512 对密码 "vagrant "进行散列处理
COMMAND='print crypt('"${USER}"', "\$6\$");'
PASSWORD=$(perl -e "${COMMAND}")

create_user(){

  echo "Create a user named ${USER}."
  # Create User
  sudo useradd -p ${PASSWORD} -m ${USER}
  # grant authrity
  sudo usermod -G sudo ${USER}
  exit 0
}

trap "create_user" ERR
# check exist user
getent passwd ${USER}

echo "${USER} is already created."
广告
将在 10 秒后关闭
bannerAds