-
-
Save jedi4ever/5657094 to your computer and use it in GitHub Desktop.
| - Tune /etc/ssh/sshd_config | |
| UseDNS no # Disable DNS lookups | |
| GSSAPIAuthentication no # Disable negotation of slow GSSAPI | |
| don't forget to restart it, use a script provider to set it , or create it with veewee or snapshot it | |
| - Tune Vagrantfile | |
| vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] | |
| See <http://serverfault.com/questions/453185/vagrant-virtualbox-dns-10-0-2-3-not-working?rq=1> | |
| - Logging into the vm with a regular ssh command | |
| See <http://blog.codeboutique.com/post/creating-debian-squeeze-box-for-vagrant> | |
| vagrant ssh-config vmname | ssh -t -t -F/dev/stdin vmname | |
| Use the -t -t to overcome the pseudoterminal warning | |
| - Now use a control connnection for ssh | |
| (as it seems that the cli invocation of vagrant takes a couple of seconds ....) | |
| Setup the control session: | |
| vagrant ssh-config vmname | ssh -t -t -F/dev/stdin -o 'ControlMaster auto' -o 'ControlPath ~/.ssh/vagrant' vmname | |
| Use it for fast login | |
| ssh -o 'ControlMaster auto' -o 'ControlPath ~/.ssh/vagrant' vmname | |
| Now it logins in a matter of milliseconds! |
For those new to Vagrantfile setup, the vb.customize line needs to be in a config.vm.provider block. For example:
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
end
And, in this case, it assumes you are using VritualBox.
Unless a name is set explicitly, change all instances of vmname in the walkthrough to default. That was a stumbling block for me.
👍 awesome, thanks!! It connects pretty much instantly now and I can conveniently issue commands to the vm, without being locked in the session. Works with OS X 10.9 as host, Ubuntu 14.04 as guest.
Can virtualbox set UseDNS no, or does that need to be configured with chef/puppet?
This has worked! From 7 seconds regular ssh to almost instant. Am on macOS Sierra 10.12.6 with Centos as guest.
On top of the above, I also copied the output of vagrant config and used echo '...content...' | ssh ... instead. This saves time since vagrant config takes time to load.
I have been looking for a solution for slow Vagrant ssh connections on Mac for months (though interrupted by daily work).
Just in case someone is in doubt, I ran vagrant ssh and then sudo vi /etc/ssh/sshd_config. Did a /GSSAPI to search where it is and added UseDNS no above the GSSAPI section and switched off GSSAPIAuthentication.
boom, this worked a treat, test suite going a lot quicker!