ubuntu xenial64 box password?

Probablement une question stupide mais

J’ai déjà utilisé la boîte trusty64 avec vagrant et j’essayais la boîte xenial64 mais il n’accepte pas l’utilisateur habituel: mot de passe vagrant: login vagrant?

Comme mentionné par l’utilisateur @prometee dans cette discussion du tableau de bord # 1569237 , vous pouvez trouver le mot de passe dans:

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

ou:

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

en fonction de votre version de vagrant. (Notez que la partie 20161221.0.0 du chemin varie en fonction du moment où la boîte a été téléchargée. De plus, il peut en 20161221.0.0 plusieurs dans votre répertoire.)

Voici le mien (ligne 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 

Pour info, l’utilisateur @racb mentionne dans la même discussion que le this bug report having been filed à Ubuntu et no [...] decision has been made yet sujet.

Hier, je me suis cogné la tête contre le mur pendant une demi-journée jusqu’à ce que je réalise une ancienne version de Virtualbox (5.0.x) et de Vagrant (1.8.0).

Mise à jour vers VirtualBox 5.1.x et Vagrant 1.8.7 pour de meilleurs résultats

Fondamentalement, les images ubuntu/xenial32 et ubuntu/xenial64 sont imparfaites car elles ne sont pas livrées avec l’utilisateur ubuntu/xenial64 .

Ceci est contre les spécifications vagrantes

J’ai fini par utiliser v0rtex/xenial64 comme recommandé dans ce rapport de bogue . Vous ne savez pas pourquoi canonical ne résout pas ce problème

Mon dossier vagrant est comme suit

 # -*- 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 

Si vous voulez toujours utiliser les images fournies canonical , il est possible d’utiliser l’approche suivante

 # -*- 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 

Si vous faites cela, le dossier /vagrant appartiendra à ubuntu:ubuntu au lieu de vagrant:vagrant . Si vous avez des scripts qui s’appuient sur l’utilisateur vagrant , ils se briseront.

Il a enfin été résolu (2018/01/13): https://bugs.launchpad.net/cloud-images/+bug/1569237/comments/111

Vous voudrez peut-être lancer la vagrant box update et ensuite vagrant destroy .

Une méthode consiste à installer expect et à lancer un changement de mot de passe. L’exemple ci-dessous définit le mot de passe ubuntu sur utilisateur 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 

La nouvelle image ubuntu/xenial64 ne vient pas avec un nom d’utilisateur et un mot de passe par défaut. Cependant, vous pouvez utiliser ssh avec une clé ssh générée dans votre dossier vagrant.

Supposons que votre fichier Vagrant soit dans /vagrant/vm01/Vagrantfile , la clé ssh serait dans /vagrant/vm01/.vagrant/machines/..../private_key

Vous pouvez vous connecter à votre private_key vagrant à l’aide de cette private_key . Si l’ordinateur invité demande la phrase secrète de la clé, ENTER simplement sur ENTER (en spécifiant une phrase secrète vierge). Par exemple, sur mon Mac:

 ssh -i /vagrant/vm01/.vagrant/..../private_key   

Si vous souhaitez toujours vous connecter à l’aide d’un nom d’utilisateur et d’un mot de passe, vous pouvez append votre propre utilisateur pour vous connecter ultérieurement:

 # 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 

Maintenant, vous pouvez utiliser SSH avec le nouveau nom d’utilisateur et mot de passe

Vous pouvez exporter une configuration valide OpenSSH pour vous connecter à la machine en tapant vagrant ssh-config partir de votre dossier Vagrantfile. La sortie vous montrera que l’authentification par mot de passe est désactivée, mais vous pouvez pointer vers le fichier de clé privée:

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

Maintenant vous pouvez:

 ssh -i /path/to/project/folder/.vagrant/machines/default/virtualbox/private_key ubuntu@machine-ip 

Si vous n’êtes pas intéressé par ubuntu/xenial64 box mais par tout autre box 16.04 LTS, j’ai utilisé celui de bento qui fonctionne avec le nom d’utilisateur et le mot de passe habituels du vagrant :

 config.vm.box = 'bento/ubuntu-16.04' config.vm.box_version = "201708.22.0" 

J’utilise Vagrant sous Windows et l’image d’ ubuntu / xenial64 sans mot de passe configuré pour cela.

  • Nom d’utilisateur par défaut: vagrant
  • Hôte par défaut: 127.0.0.1:2222
  • Clé SSH par défaut: C: /Vagrant/.vagrant/machines/default/virtualbox/private_key

Vous pouvez vous connecter à votre machine virtuelle via la commande:

  vagrant ssh 

ou par

 ssh -i private_key vagrant:127.0.0.1 -p 2222