Different SSH Users For Vagrant SSH and Vagrant Up (Provision)
This article was last edited over 3 years ago. Information here may no longer be accurate. Please proceed with caution, and feel free to contact me.
I have a Vagrant box where I want to SSH in as the standard
vagrant user for the initial provision and
deployment, but I want to use my own alternate custom user account
for my dev work.
I want to use vagrant for the initial deploy as that
is the standard user for many vagrant machine images. Adding my
own user into the image would be a pain, and would prevent me from
being able to use a standard Vagrant image.
I want to add my custom deploy user during
provisioning, and use that for my dev work, because that is the
account my staging and production servers use. Having this user
account present for dev work will allow me to be more consistent
with our real environments.
Unfortunately, that was a bit more challenging to do than I would
have anticipated, and I could not find an option in the Vagrant
docs that would allow me to use two different users for
vagrant up and vagrant ssh.
Eventually, I found this solution by GitHub user danielfrg.
Edit your Vagrantfile and add this conditional in the
configure block.
VAGRANT_COMMAND = ARGV[0]
Vagrant.configure("2") do |config|
if VAGRANT_COMMAND == "ssh"
config.ssh.username = 'other_username'
end
...
end
Perfect. Now my other_username (deploy
in my case) will only be used if the ssh argument is
passed to vagrant.