| Summary: | Introduce multiplex timeout configuration | ||
|---|---|---|---|
| Product: | Portable OpenSSH | Reporter: | thomas.hartwig |
| Component: | ssh | Assignee: | Assigned to nobody <unassigned-bugs> |
| Status: | NEW --- | ||
| Severity: | enhancement | CC: | djm |
| Priority: | P5 | ||
| Version: | 8.2p1 | ||
| Hardware: | Other | ||
| OS: | Linux | ||
|
Description
thomas.hartwig
2020-12-15 21:16:45 AEDT
There are two possible situations that you're describing here: 1) The main multiplexing session has exited, leaving a stale ControlPath socket This happens if the ssh process doesn't get a change to exit gracefully, e.g. an abnormal exit, sudden reboot, laptop ran out of power, etc. In this case, the new ssh connection should notice the stale socket and reconnect immediately. 2) The main multiplexing session has stuck, leaving a valid but unresponsive ControlPath I suspect this is what you're experiencing - the connection might become stuck because you switched networks, unsuspended a laptop, etc. In this case, the ssh client will try to interact with the main multiplexing connection but, because it can no longer communicate with the peer sshd, nothing good happens. There already exist settings to detect and fix this: ServerAliveInterval and ServerAliveCountMax. These control protocol-level timeouts that will kill the connection if the server is persistently unresponsive. Setting them is a balance between responsiveness to stuck connections and tolerance of transient network problems. I use ServerAliveInterval 30 ServerAliveCountMax 8 In my ~/.ssh/config to set a 4 minute timeout for unresponsive connections. Does this help you? Thanks for the suggestion, you are right the second pint addresses my question. I appreciate your hint with keepalive but I am not sure about it. It is a workaround. IMHO there should be an extra option like ControlMasterTimeout. |