You can make connections faster for ssh, rsync, hg, git, emacs, etc by using a shared ssh connection instead of creating a new connection every time.
Method One - .ssh/config#
Add the following to your ~/.ssh/config.
Host * ControlPath ~/.ssh/master-%l-%r@%h:%p ControlMaster auto
If you want aliases created, you can also add
Host machine1 User yourname HostName machine1-long-name.domain.com Host machine2 User yourname HostName machine2-long-name.domain.com
Now, instead of typing
$ ssh [yourname@]machine1-long-name.domain.com
You can simply do
$ ssh machine1
Any subsequent connections that machine will be very fast and use the same connections.
More information
- http://www.saltycrane.com/blog/2008/11/creating-remote-server-nicknames-sshconfig/
- http://protempore.net/~calvins/howto/ssh-connection-sharing/
- http://blogs.perl.org/users/smylers/2011/08/ssh-productivity-tips.html
Making a new connection#
If you want to use a different connection options, you must open a new connection instead if reusing the existing one. You do this by setting the ControlPath to none. For convenience, the -S flags sets the ControlPath on a per-process basis.
$ ssh -S none -Y example.com
Method Two - For Emacs#
If you only want to improve your emacs performace, in your ~/.emacs file, add
(require 'tramp) (setq tramp-default-method "scpc")
When you open a file, open as
/host:/path/to/file
It will be noticably faster.
Networking.SSH : Performance