When we move a Vagrant VM from one computer to another, we encounter the Permission denied (publickey) error.
This error occurs when Vagrant cannot access the guest machine using its SSH private key.
To solve this we should go to the folder where the Vagrantfile is located, next we should access the following folders.
Note
The path might be slightly different if you're not using VirtualBox as your provider.
cd .vagrant\machines\default\virtualbox
In this folder you will find a file named private_key
, you should delete it.
Next, open your provider software, Virtualbox, and boot your VM.
Once it's booted, access the terminal and execute the following commands:
cd ~/.ssh
curl https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub > authorized_keys
This will allow using the Vagrant's default public key when accessing the guest.
Let's try it, we execute the following Vagrant command:
vagrant reload
Once Vagrant tries to boot the guest, a new SSH key will be generated in order to replace the default one.
With these few steps, we will be able to use as usual our guest machine.