问题描述
我正在尝试通过Vagrant 1.9.1部署和运行Ubuntu 16.04 VM。我正在使用的Vagrantfile来自Atlas:
Ubuntu Xenial 16.04 Vagrantfile
我正在使用Debian Stretch作为主机操作系统。 Vagrant是通过Vagrant网站上的.deb安装的。
Vagrantfile确实可以正确运行和部署。我既可以通过主机操作系统,也可以使用’vagrant ssh’进入虚拟机。但是,当尝试从外部插入ssh时,我有一个较小的阻止程序。
该虚拟机中的默认用户名为’ubuntu’,看起来已设置了密码。但是,我根本不知道密码是什么,而且似乎没有文档提供我想要的信息。尝试通过VM中的’passwd’设置密码时要求输入当前密码。有人知道它要去哪里吗?
所以我的最大问题是:是否有其他人部署了相同的Vagrantfile?如果是,是否有人知道默认用户的密码是什么?
最佳回答
在撰写此答案时:没有人在ubuntu/xenial64
Vagrant框上公开共享用户ubuntu
的密码(请参阅#1569237)。
这不是必需的。您可以:
-
使用SSH密钥身份验证登录
-
使用
sudo passwd ubuntu
更改密码(默认情况下,ubuntu
用户的sudo-permissions设置为NOPASSWD
)
实际上,不仅可以,而且应该更改密码。
次佳回答
密码位于~/.vagrant.d/ubuntu-VAGRANTSLASH-xenial64/20161221.0.0/virtualbox/Vagrantfile
中,由用户@prometee在此启动板讨论#1569237中提到。
这是我的(第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
to ubuntu和到目前为止no [...] decision has been made yet
相同的讨论中提到。
第三种回答
新的ubuntu/xenial64
映像没有默认的用户名和密码。但是,您可以使用在vagrant文件夹中生成的ssh-key ssh。
假设您的Vagrantfile位于/vagrant/vm01/Vagrantfile
,ssh-key将位于/vagrant/vm01/.vagrant/machines/..../private_key
您可以使用此private_key
登录到无业游民的虚拟机。如果访客计算机要求输入密钥的密码短语,则只需按ENTER
(指定空白密码短语)即可。例如,在我的Mac上:
ssh -i /vagrant/vm01/.vagrant/..../private_key <your vm user>@<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。