Пароль ubuntu xenial64?

Вероятно, глупый вопрос, но

Я использовал поле trusty64 раньше с помощью vagrant и пытался использовать xenial64, но он не принимает обычного пользователя: бродячий пароль: бродячий логин?

1
задан 2 October 2016 в 09:13

6 ответов

Я ударил головой о стену на полдня вчера, пока не понял, что запускаю старую версию Virtualbox (5.0.x) и Vagrant (1.8.0)

Обновлен до VirtualBox 5.1. x и Vagrant 1.8.7 и получили лучшие результаты

В основном изображения ubuntu/xenial32 и ubuntu/xenial64 ошибочны, поскольку они не поставляются с пользователем 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, чтобы они были там, они сломали

11
ответ дан 23 May 2018 в 05:34

Последнее исправлено (2018/01/13): https://bugs.launchpad.net/cloud-images/+bug/1569237/comments/111

Вы можете захотеть запустите vagrant box update, а затем vagrant destroy.

4
ответ дан 23 May 2018 в 05:34
  • 1
    Вы также можете добавить это в свой файл Vagrant: config.vm.box_check_update = true config.vm.box_version = " 20180112.0.0 " – ojrac 31 January 2018 в 20:27

Способ установки ожидает и инициирует смену пароля. Пример ниже устанавливает пароль ubuntu для пользователя ubuntu.

Vagrant.configure("2") do |config|
    apt-get install -y expect
    echo '#!/usr/bin/expect
      set timeout 20
      spawn sudo passwd ubuntu
      expect "Enter new UNIX password:" {send "ubuntu\\r"}
      expect "Retype new UNIX password:" {send "ubuntu\\r"}
      interact' > change_ubuntu_password
    chmod +x change_ubuntu_password
  ./change_ubuntu_password
end
3
ответ дан 23 May 2018 в 05:34

Новое ubuntu/xenial64 изображение не содержит имени пользователя и пароля по умолчанию. Однако вы можете использовать ssh-ключ, сгенерированный в вашей бродящей папке.

Допустим, ваш Vagrantfile находится в /vagrant/vm01/Vagrantfile, ssh-ключ будет находиться в /vagrant/vm01/.vagrant/machines/..../private_key

You можете войти в ваш бродячий vm, используя этот private_key. Если гостевая машина запрашивает ключевую фразу ключа, просто нажмите ENTER (указав пустую кодовую фразу). Например, на моем Mac:

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

Если вы все еще хотите войти в систему с использованием имени пользователя и пароля, после входа в систему с помощью private_key вы можете добавить своего собственного пользователя для входа в систему позже: [!d3 ]

# 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 с использованием нового имени пользователя и пароля.

1
ответ дан 23 May 2018 в 05:34

Вы можете вывести правильную конфигурацию OpenSSH для подключения к машине, набрав vagrant ssh-config из вашей папки Vagrantfile. На выходе будет показано, что аутентификация пароля отключена, однако вы можете указать файл закрытого ключа:

Host default
  HostName 127.0.0.1
  User ubuntu
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile /path/to/project/folder/.vagrant/machines/default/virtualbox/private_key
  IdentitiesOnly yes
  LogLevel FATAL

Теперь вы можете:

ssh -i /path/to/project/folder/.vagrant/machines/default/virtualbox/private_key ubuntu@machine-ip
0
ответ дан 23 May 2018 в 05:34

Если вы не заинтересованы в поле ubuntu/xenial64, но в любом другом ящике 16.04 LTS, я использовал bento, который работает с обычным vagrant именем пользователя и паролем:

config.vm.box = 'bento/ubuntu-16.04'
config.vm.box_version = "201708.22.0"
0
ответ дан 23 May 2018 в 05:34

Другие вопросы по тегам:

Похожие вопросы: