I was trying to run vagrant up for an existing vagrant setup. I get this following error:
PLAY [main] *******************************************************************
GATHERING FACTS ***************************************************************
fatal: [xxx.xxx.xx.xx] => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue
TASK: [install python-software-properties] ************************************
FATAL: no hosts matched or all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit #/Users/mdobrenko/playbook.retry
xxx.xxx.xx.xx : ok=0 changed=0 unreachable=1 failed=0
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
Running vagrant -vvvv up reveals:
Mareks-MBP:rsvp_vagrant mdobrenko$ sudo vagrant -vvvv up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'hashicorp/precise32' is up to date...
==> default: VirtualBox VM is already running.
==> default: Checking for host entries
Mareks-MBP:rsvp_vagrant mdobrenko$ sudo vagrant destroy
default: Are you sure you want to destroy the 'default' VM? [y/N] y
==> default: Forcing shutdown of VM...
==> default: Destroying VM and associated drives...
==> default: Removing hosts
==> default: Running cleanup tasks for 'ansible' provisioner...
Mareks-MBP:rsvp_vagrant mdobrenko$ sudo vagrant -vvvv up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'hashicorp/precise32'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'hashicorp/precise32' is up to date...
==> default: Setting the name of the VM: rsvp_vagrant_default_1431710679543_35240
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 => 2200 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2200
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.2.0
default: VirtualBox Version: 4.3
==> default: Checking for host entries
==> default: adding to (/etc/hosts) : 192.168.33.10 rsvp # VAGRANT: 6778d1189c76a655929c20349162f9c4 (default) / 4d4353fa-c6e5-4346-b003-78d02ed54989
==> default: adding to (/etc/hosts) : 192.168.33.10 rsvp.dev # VAGRANT: 6778d1189c76a655929c20349162f9c4 (default) / 4d4353fa-c6e5-4346-b003-78d02ed54989
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
default: /vagrant => /Users/mdobrenko/Sites/rsvp_vagrant
default: /srv/rsvp_v2 => /Users/mdobrenko/Sites/rsvp_vagrant/vagrant
==> default: Running provisioner: ansible...
PLAY [main] *******************************************************************
GATHERING FACTS ***************************************************************
fatal: [192.168.33.10] => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue
TASK: [install python-software-properties] ************************************
FATAL: no hosts matched or all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit #/Users/mdobrenko/playbook.retry
192.168.33.10 : ok=0 changed=0 unreachable=1 failed=0
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
I am running a hashicorp/precise 32 box, and the IP address in my config file is 192.168.33.10.
EDIT:
After editing my vagrantfile -> ansible.verbose = 'vvvv'
This was the output of sudo vagrant up:
Mareks-MBP:rsvp_vagrant mdobrenko$ sudo vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'hashicorp/precise32'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'hashicorp/precise32' is up to date...
==> default: Setting the name of the VM: rsvp_vagrant_default_1431727399798_16186
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 => 2200 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2200
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: The guest additions on this VM do not match the installed version of
default: VirtualBox! In most cases this is fine, but in rare cases it can
default: prevent things such as shared folders from working properly. If you see
default: shared folder errors, please make sure the guest additions within the
default: virtual machine match the version of VirtualBox you have installed on
default: your host and reload your VM.
default:
default: Guest Additions Version: 4.2.0
default: VirtualBox Version: 4.3
==> default: Checking for host entries
==> default: adding to (/etc/hosts) : 192.168.33.10 rsvp # VAGRANT: b9809e905749d56ff4836d1021c101f9 (default) / 504dd053-7a44-42ce-af87-24331dc6783d
==> default: adding to (/etc/hosts) : 192.168.33.10 rsvp.dev # VAGRANT: b9809e905749d56ff4836d1021c101f9 (default) / 504dd053-7a44-42ce-af87-24331dc6783d
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
default: /vagrant => /Users/mdobrenko/Sites/rsvp_vagrant
default: /srv/rsvp_v2 => /Users/mdobrenko/Sites/rsvp_vagrant/vagrant
==> default: Running provisioner: ansible...
ANSIBLE_FORCE_COLOR=true ANSIBLE_HOST_KEY_CHECKING=false PYTHONUNBUFFERED=1 ansible-playbook --private-key=/Users/mdobrenko/.vagrant.d/insecure_private_key --user=vagrant --inventory-file=inventory -vvvv --limit='all' provisions/playbook.yml
PLAY [main] *******************************************************************
GATHERING FACTS ***************************************************************
<192.168.33.10> ESTABLISH CONNECTION FOR USER: vagrant
<192.168.33.10> REMOTE_MODULE setup
<192.168.33.10> EXEC ssh -C -tt -vvv -o ControlMaster=auto -o ControlPersist=60s -o ControlPath="/Users/mdobrenko/.ansible/cp/ansible-ssh-%h-%p-%r" -o StrictHostKeyChecking=no -o IdentityFile="/Users/mdobrenko/.vagrant.d/insecure_private_key" -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=10 192.168.33.10 /bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1431727421.02-64963608760193 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1431727421.02-64963608760193 && echo $HOME/.ansible/tmp/ansible-tmp-1431727421.02-64963608760193'
fatal: [192.168.33.10] => SSH encountered an unknown error. The output was:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/Users/mdobrenko/.ansible/cp/ansible-ssh-192.168.33.10-22-vagrant" does not exist
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.33.10 [192.168.33.10] port 22.
debug2: fd 3 setting O_NONBLOCK
debug1: fd 3 clearing O_NONBLOCK
debug1: Connection established.
debug3: timeout: 10000 ms remain after connect
debug1: permanently_set_uid: 0/0
debug3: Incorrect RSA1 identifier
debug3: Could not load "/Users/mdobrenko/.vagrant.d/insecure_private_key" as a RSA1 public key
debug1: identity file /Users/mdobrenko/.vagrant.d/insecure_private_key type -1
debug1: identity file /Users/mdobrenko/.vagrant.d/insecure_private_key-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
write: Broken pipe
TASK: [install python-software-properties] ************************************
FATAL: no hosts matched or all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit #/Users/mdobrenko/playbook.retry
192.168.33.10 : ok=0 changed=0 unreachable=1 failed=0
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.
Mareks-MBP:rsvp_vagrant mdobrenko$
Vagrant File:
# -*- 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|
# All Vagrant configuration is done here. The most common configuration
# options are documented and commented below. For a complete reference,
# please see the online documentation at vagrantup.com.
# Every Vagrant virtual environment requires a box to build off of.
config.vm.box = "hashicorp/precise32"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.hostname = 'rsvp'
config.hostsupdater.aliases = ["rsvp.dev"]
config.vm.network :private_network, ip: "192.168.33.10"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# If true, then any SSH connections made will enable agent forwarding.
# Default value: false
# config.ssh.forward_agent = true
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder "../data", "/vagrant_data"
config.vm.synced_folder "vagrant/", "/srv/rsvp_v2", :mount_options => ["dmode=777","fmode=666"]
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
# config.vm.provider "virtualbox" do |vb|
# # Don't boot with headless mode
# vb.gui = true
#
# # Use VBoxManage to customize the VM. For example to change memory:
# vb.customize ["modifyvm", :id, "--memory", "1024"]
# end
#
# View the documentation for the provider you're using for more
# information on available options.
# Enable provisioning with CFEngine. CFEngine Community packages are
# automatically installed. For example, configure the host as a
# policy server and optionally a policy file to run:
#
# config.vm.provision "cfengine" do |cf|
# cf.am_policy_hub = true
# # cf.run_file = "motd.cf"
# end
config.vm.provision "ansible" do |ansible|
ansible.verbose = 'vvvv'
ansible.limit = 'all'
ansible.inventory_path = 'inventory'
ansible.playbook = "provisions/playbook.yml"
end
#
# You can also configure and bootstrap a client to an existing
# policy server:
#
# config.vm.provision "cfengine" do |cf|
# cf.policy_server_address = "10.0.2.15"
# end
# Enable provisioning with Puppet stand alone. Puppet manifests
# are contained in a directory path relative to this Vagrantfile.
# You will need to create the manifests directory and a manifest in
# the file default.pp in the manifests_path directory.
#
# config.vm.provision "puppet" do |puppet|
# puppet.manifests_path = "manifests"
# puppet.manifest_file = "default.pp"
# end
# Enable provisioning with chef solo, specifying a cookbooks path, roles
# path, and data_bags path (all relative to this Vagrantfile), and adding
# some recipes and/or roles.
#
# config.vm.provision "chef_solo" do |chef|
# chef.cookbooks_path = "../my-recipes/cookbooks"
# chef.roles_path = "../my-recipes/roles"
# chef.data_bags_path = "../my-recipes/data_bags"
# chef.add_recipe "mysql"
# chef.add_role "web"
#
# # You may also specify custom JSON attributes:
# chef.json = { mysql_password: "foo" }
# end
# Enable provisioning with chef server, specifying the chef server URL,
# and the path to the validation key (relative to this Vagrantfile).
#
# The Opscode Platform uses HTTPS. Substitute your organization for
# ORGNAME in the URL and validation key.
#
# If you have your own Chef Server, use the appropriate URL, which may be
# HTTP instead of HTTPS depending on your configuration. Also change the
# validation key to validation.pem.
#
# config.vm.provision "chef_client" do |chef|
# chef.chef_server_url = "https://api.opscode.com/organizations/ORGNAME"
# chef.validation_key_path = "ORGNAME-validator.pem"
# end
#
# If you're using the Opscode platform, your validator client is
# ORGNAME-validator, replacing ORGNAME with your organization name.
#
# If you have your own Chef Server, the default validation client name is
# chef-validator, unless you changed the configuration.
#
# chef.validation_client_name = "ORGNAME-validator"
end
Any idea what the problem is? I'm not quite sure why this would happen, as it worked fine just a few months ago -- I haven't touched this project in a while.
Well, I feel somewhat silly because I ended up resolving my own errors by working on something that wasn't exactly related to the project..
Essentially the other day I ran into some SSH key configuration issues -- it seems like one of my keys was doing something really weird. I created new keys, got rid of the old ones, updated config for my web servers, etc.
Today when re-visting the thread, I realized that 'vagrant up' runs just fine...
In the past, I always had to run 'sudo' because I would get some sort of strange errors indicating I didn't have permission.
Now I am able to run it without sudo, and it works like a charm.
Thanks to all those that contributed!
First of all, sorry but I couldn't post as a comment to your answer.
Anyway if this is a permission related issue then it might be because at some point you ran vagrant with sudo.
Vagrant then creates files as a root user and any future attempts will run into permission problems.
Just chowning the .vagrant in your project folder to the current user should work, although you might also have to chown the .vagrant.d folder in your home directory.
Hope this helps someone!
This is a bit of a shot in the dark, since we don't have much details about your Vagrantfile or your ssh configuration, but you probably should not run vagrant up as sudo.
If running vagrant up instead of sudo vagrant up doesn't solve your problem, please post the result of the vagrant ssh-config command and the Ansible provisioning section from your Vagrantfile.
Related
I am new Vagrant. My current environment is Ubuntu -> running on Virtual Box -> on a Mac book.
I have successfully installed the Virtualbox and Vagrant packages on my Ubuntu install. I set my repo and started my build (vagrant up). After image is successfully copied I have step in my vagrantfile to connect via SSH to the VM.. It just hangs and ultimately times out.
See error below
==> default: Box 'ubuntu/trusty64' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'ubuntu/trusty64'
default: URL: https://vagrantcloud.com/ubuntu/trusty64
==> default: Adding box 'ubuntu/trusty64' (v20190514.0.0) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20190514.0.0/providers/virtualbox.box
==> default: Successfully added box 'ubuntu/trusty64' (v20190514.0.0) for 'virtualbox'!
==> default: Importing base box 'ubuntu/trusty64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/trusty64' is up to date...
==> default: Setting the name of the VM: postgres_default_1588691813886_34109
==> default: Clearing any previously set forwarded ports...
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:
https://www.virtualbox.org/manual/ch04.html#sharedfolders
This option can be disabled globally with an environment variable:
VAGRANT_DISABLE_VBOXSYMLINKCREATE=1
or on a per folder basis within the Vagrantfile:
config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
#<Thread:0x00005618d3a47468#/usr/share/rubygems-integration/all/gems/vagrant-2.0.2/lib/vagrant/batch_action.rb:71 run> terminated with exception (report_on_exception is true):
....
....
....
Timed out while waiting for the machine to boot. This means that (Vagrant::Errors::VMBootTimeout)
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.
If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.
If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.
If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
Timed out while waiting for the machine to boot. This means that
Vagrant was unable to communicate with the guest machine within
the configured ("config.vm.boot_timeout" value) time period.
If you look above, you should be able to see the error(s) that
Vagrant had when attempting to connect to the machine. These errors
are usually good hints as to what may be wrong.
If you're using a custom box, make sure that networking is properly
working and you're able to connect to the machine. It is a common
problem that networking isn't setup properly in these boxes.
Verify that authentication configurations are also setup properly,
as well.
If the box appears to be booting properly, you may want to increase
the timeout ("config.vm.boot_timeout") value.
Vagrantfile
# -*- mode: ruby -*-
# # vi: set ft=ruby :
IMAGE_NAME = "bento/ubuntu-18.04"
N = 1
Vagrant.configure("2") do |config|
config.vm.box = IMAGE_NAME
config.vm.provision "shell", path: "provision/vagrant_provision.sh", privileged: true
config.vm.provider "virtualbox" do |v|
v.memory = 2048
v.cpus = 1
end
# Nodes
(1..N).each do |number|
config.vm.define "node-#{number}" do |node|
node.vm.network "private_network", ip: "192.168.50.21#{number}"
node.vm.hostname = "node-#{number}"
node.vm.synced_folder "scripts/", "/scripts"
end
end
end
Issue was related to using Vagrant/VirtualBox under an Ubuntu VM that was already running VirtualBox on a Mac. When I installed Vagrant/VirtualBox on the Mac natively I had no issues.
i want to setup a webserver using vagrant and i have problem with the command "vagrant up":
First i work on a virtual machine (Virtualbox) and i have to build my vagrant project inside virtualbox so I created a Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty32"
config.vm.network "private_network", ip: "192.168.68.8"
config.vm.provider "virtualbox" do |vb|
vb.gui = true
end
config.vm.provision :shell, :path => ".provision/bootstrap.sh"
end
Then when i execute the command "vagrant up" it hangs on the last line:
zakaria#server:~/webserver$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 80 (guest) => 8080 (host) (adapter 1)
default: 80 (guest) => 8080 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
and the gui stucks too :
This is the picture knowing that i am already enabled VT-X in virtualbox settings.
One thing I encourage you to look is if you have HyperV on, Vagrant docs specifically say to disable it: https://www.vagrantup.com/docs/installation#windows-virtualbox-and-hyper-v
I suffered a similar problem and mine was related (mostly) to Docker Desktop Client for Windows.
I took the nuclear option and removed Docker and disabled a ton of features relating to containers and virtualisation (incl. most specifically Hyper-V) for Windows 10 and it worked (I no longer the get SSH auth method: private key timeout; I am slowly piecing back all the pieces I disabled to see which specific feature is a no-go for a working solution).
Until I removed all the features, my CPU was not recognising VT-x and Extended Page Tables ... once I made the above changes, Intel Processor Identification Utility and CPU-Z confirmed the CPU supported these, and I found that I was once again able to SSH without any timeout issues.
I have successfully created a custom Vagrant box, based on the official ubuntu/xenial64 Vagrant box, but I get this message when I attempt to use vagrant ssh:
==> default: The machine you're attempting to SSH into is configured to use
==> default: password-based authentication. Vagrant can't script entering the
==> default: password for you. If you're prompted for a password, please enter
==> default: the same password you have configured in the Vagrantfile.
The only change to the box is to provision it with NginX. I then use...
vagrant package --vagrantfile <path_to_vagrantfile> --output nginx.box
... where <path_to_vagrantfile> is, in my case, /home/blackslate/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-xenial64/20170822.0.0/virtualbox/Vagrantfile. I follow this with:
vagrant box add nginx nginx.box
I then create a new directory and use vagrant init nginx to create a new instance of the box. The whole process is described in this question.
When I use vagrant up, all appears to be running as expected:
vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'nginx'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: Custom_default_1503826905856_10643
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: ubuntu
default: SSH auth method: password
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
default: /vagrant => /home/blackslate/repos/Vagrant/Custom
However, vagrant ssh provokes the message at the beginning of this question. When I try to ssh in manually, using "ubuntu" as the ssh user and "vagrant" as the password, I get this:
ssh ubuntu#127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:PSnauymZfKi1HIRIKfez5wAnpPFJW9h3eC+TzxiiIWA.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
ubuntu#127.0.0.1's password:
Permission denied, please try again.
ubuntu#127.0.0.1's password:
I get a similar result if I try ssh vagrant#127.0.0.1:
ssh vagrant#127.0.0.1
vagrant#127.0.0.1's password:
Permission denied, please try again.
vagrant#127.0.0.1's password:
The same is true if I open the VirtualBox GUI and talk to the VM directly.
I have tried following the instructions here, but I'm guessing that this refers to an older version of Vagrant.
I am hoping that I will be able to make changes at the package stage, so that when I distribute the custom Vagrant box to other developers, vagrant ssh just works, with no need to massage any files beforehand.
Try using the Oracle Virtual Box Manager to log in directly console instead of with ssh. Thereupon may edit the sshd config file and allow the passoword authentication. Restart SSHD service.
At first I got this error:
Text will be echoed in the clear. Please install the HighLine or
Termios libraries to suppress echoed text.
vagrant#127.0.0.1's password:
Then I installed: HighLine
Now I only get:
vagrant#127.0.0.1's password:
I tried to use vagrant has the password.
I did not work. I tried my computer password, it also did not work.
So I have no idea what the password I am supposed to use.
All this started after I added these settings (in Vagrantfile):
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.keys_only = true
config.ssh.insert_key = true
One might ask why I am using these settings (because normally vagrant is the default username and password). The reason is because for some reason the box generate some random password and uses ubuntu has the username.
# 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 = "02357F2D68C4"
config.ssh.username = "ubuntu"
config.ssh.password = "1547c59e6cbdffd4104ad720"
config.vm.provider "virtualbox" do |vb|
vb.customize [ "modifyvm", :id, "--uart1", "0x3F8", "4" ]
vb.customize [ "modifyvm", :id, "--uartmode1", "file", File.join(Dir.pwd, "ubuntu-zesty-17.04-cloudimg-console.log") ]
end
end
This is found inside of: ~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-zesty64/20170412.1.0/virtualbox
I tried this solution and it did not work:
vagrant asks password at only the first time 'vagrant up'
So what is the password?
What can I do so that it stops asking a password?
Vagrant 1.9.1
Local OS:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 17.04
Release: 17.04
Codename: zesty
Box: ubuntu/zesty64 (virtualbox, 20170412.1.0)
UPDATE 1
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'ubuntu/zesty64' could not be found. Attempting to find and install...
default: Box Provider: virtualbox
default: Box Version: >= 0
==> default: Loading metadata for box 'ubuntu/zesty64'
default: URL: https://atlas.hashicorp.com/ubuntu/zesty64
==> default: Adding box 'ubuntu/zesty64' (v20170412.1.0) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/ubuntu/boxes/zesty64/versions/20170412.1.0/providers/virtualbox.box
==> default: Successfully added box 'ubuntu/zesty64' (v20170412.1.0) for 'virtualbox'!
==> default: Importing base box 'ubuntu/zesty64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'ubuntu/zesty64' is up to date...
==> default: Setting the name of the VM: -----
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 3306 (guest) => 3306 (host) (adapter 1)
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: password
default: Warning: Connection reset. Retrying...
default: Warning: Remote connection disconnect. Retrying...
vagrant#127.0.0.1's password:
vagrant#127.0.0.1's password:
default: Warning: Authentication failure. Retrying...
vagrant#127.0.0.1's password: ==> default: Waiting for cleanup before exiting...
Vagrant exited after cleanup due to external interrupt.
Vagrant's Official documentation states that there is a default password for 'vagrant' user which is
vagrant itself .
Go to their Official Website to know more
I think you have some confusion.
config.ssh.username will reference the user to use to login, but this user must exists in the VM, you cannot decide to use your own name and it will work; if there's no corresponding user in the VM, it will not work.
Vagrant recommends to use key-based authentication rather than a password, but when you create your box (generally using packer.io) you can decide to have password authentication method.
In the case of ubuntu/zesty64 box, thats what the owner has decided to do, it has created only the ubuntu user and has decided to authenticate with a password.
If you prefer to use vagrant to login to the VM, you will first need to create the vagrant user, you can also download the public key. After you make those changes, you can repackage the box so if you want to re-use in future, all setup will be kept.
You can also look at building your own box using packer, there are tons of available templates on github that you can re-use.
I've tried to wake up base VM bento/centos-67.
$ vagrant version
Installed Version: 1.8.5
Latest Version: 1.8.5
You're running an up-to-date version of Vagrant!
$ vagrant init bento/centos-6.7; vagrant up --provider virtualbox; vagrant up
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'bento/centos-6.7'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bento/centos-6.7' is up to date...
==> default: Setting the name of the VM: bento_default_1473166306806_14580
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2200
default: SSH username: vagrant
default: SSH auth method: private key
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...
But in the same time I can use vagrant ssh with password vagrant.
So, what's wrong?..
Linked questions: #1
(Also reported the issue to chef)
Fix
The problem is: ~/.ssh/authorized_keys file with the public key which has 644 permissions but must be 600
$ ssh vagrant#127.0.0.1 -p 2200 # use password "vagrant"
[vagrant#localhost ~]$ chmod 600 ~/.ssh/authorized_keys
Now vagrant ssh can be used without asking.
The question is why it doesn't work from the box? What's went wrong? I have teach it how to define authorized_keys file properly? oO
Maybe this related to the vagrant bug.
It is definitely the Vagrant bug you are linking to and not the Bento box. I am the Bento box maintainer and we've dropped back to Vagrant 1.8.4 in our pipelines.