Vagrant – Changing the ssh connection password with the machine

Question:

Well folks, I'm doing some tests with virtual machines made with Vagrant, but now, I'm having a problem which is to change the default password for connection with the virtual machine (Default password: "vagrant").

Below is the Vagrantfile:

Vagrant.configure(2) do |config|
  config.vm.box = "192.168.0.21"
  config.ssh.username = "vagrant"
  config.ssh.password = '123'
  config.ssh.insert_key = true
  config.vm.network "public_network", bridge: "wlan0", ip: "192.168.0.21" 
  config.vm.provider "virtualbox" do |v|
    v.name = "192.168.0.21"
    v.cpus = 1
    v.memory = 512
  end
end

Note that I changed the password via config.ssh.password, but when I try to connect via ssh from the terminal, the password remains the default "vagrant".

When I change the username (config.ssh.username) to "root", for example, it gives this problem:

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: bridged
==> 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: root
    default: SSH auth method: password
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
Text will be echoed in the clear. Please install the HighLine or Termios libraries to suppress echoed text.
root@127.0.0.1's password:

Well, all that's left is to fix this problem, thanks for the help!

Answer:

According to the documentation for VagrantFile , the value of the config.ssh.password key is used when logging into the virtual machine via SSH and not for setting the password itself. The password is defined in the image ( box ) you are using. The same explanation goes for the config.ssh.username key.

If you wanted to change your virtual machine's password, you can log in normally to the VM for the first time and only then change the password:

$ vagrant ssh
$ passwd
Changing password for vagrant.
Old Password:
New Password:
Confirm New Password:

After this step change the config.ssh.password to the password you just defined inside the VM.

Scroll to Top