# Allow using -M (ControlMaster) to create a master SSH session which
# "tunnels" other connections to the same host, thus reducing the number of
# authentications (which are relatively slow) and TCP connections. The master
-# sockets are stored in ~/.ssh (by default ControlPath is not set).
+# sockets are stored in ~/.ssh (by default ControlPath is not set). Using %r
+# (remote user name) might leak information to other users on the current
+# system (e.g. via netstat or lsof).
ControlPath ~/.ssh/master-%l-%h-%p-%r
# Automatically create a new master session if there's none yet or use an
# existing one. This way the user doesn't have to use -M to enable a master
# manually. Don't set this option to "yes" or all SSH commands try to become
# the master session which is obviously not possible.
ControlMaster auto
+# When the connection for a master is closed (e.g. logout of remote shell),
+# move the master connection in the background. If there's no other active
+# connection using the master, close it after x seconds. This prevents the
+# client of the master connection from blocking because it waits for all
+# connections using it to terminate which is very annoying. The timeout
+# prevents stale master connections.
+ ControlPersist 10
# Hash hosts in ~/.ssh/known_hosts to try to conceal the known hosts. Doesn't
# help if the ssh hosts are stored in the shell's history file or in this file