Run ssh with ServerAliveInterval 60
So that stalled transfers will be noticed within about 3 minutes, even if TCPKeepAlive is disabled or doesn't work. Rather than setting with -o, use -F with another config file, so that any settings in ~/.ssh/config or /etc/ssh/ssh_config overrides this.
This commit is contained in:
parent
075602b1df
commit
0ae08947ac
5 changed files with 45 additions and 11 deletions
35
Annex/Ssh.hs
35
Annex/Ssh.hs
|
@ -33,6 +33,7 @@ import qualified Git.Url
|
|||
import Config
|
||||
import Annex.Path
|
||||
import Utility.Env
|
||||
import Utility.Tmp
|
||||
import Types.CleanupActions
|
||||
import Git.Env
|
||||
#ifndef mingw32_HOST_OS
|
||||
|
@ -49,13 +50,33 @@ sshOptions (host, port) gc opts = go =<< sshCachingInfo (host, port)
|
|||
go (Just socketfile, params) = do
|
||||
prepSocket socketfile
|
||||
ret params
|
||||
ret ps = return $ concat
|
||||
[ ps
|
||||
, map Param (remoteAnnexSshOptions gc)
|
||||
, opts
|
||||
, portParams port
|
||||
, [Param "-T"]
|
||||
]
|
||||
ret ps = do
|
||||
overideconfigfile <- fromRepo gitAnnexSshConfig
|
||||
-- We assume that the file content does not change.
|
||||
-- If it did, a more expensive test would be needed.
|
||||
liftIO $ unlessM (doesFileExist overideconfigfile) $
|
||||
viaTmp writeFile overideconfigfile $ unlines
|
||||
-- ssh expands "~"
|
||||
[ "Include ~/.ssh/config"
|
||||
-- ssh will silently skip the file
|
||||
-- if it does not exist
|
||||
, "Include /etc/ssh/ssh_config"
|
||||
-- Everything below this point is only
|
||||
-- used if there's no setting for it in
|
||||
-- the above files.
|
||||
--
|
||||
-- Make sure that ssh detects stalled
|
||||
-- connections.
|
||||
, "ServerAliveInterval 60"
|
||||
]
|
||||
return $ concat
|
||||
[ ps
|
||||
, [Param "-F", File overideconfigfile]
|
||||
, map Param (remoteAnnexSshOptions gc)
|
||||
, opts
|
||||
, portParams port
|
||||
, [Param "-T"]
|
||||
]
|
||||
|
||||
{- Returns a filename to use for a ssh connection caching socket, and
|
||||
- parameters to enable ssh connection caching. -}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue