关于 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."