The ServerAliveInterval option is supposed to check the connection "if no data has been received from the server" during the interval. However, if the client side keeps trying to write data, the check is never performed. For example, run this command: while true; do date ; sleep 3; done | ssh -o ServerAliveInterval=10 -o ServerAliveCountMax=2 YourSshServer cat Once the connection is established, break the communication between the client and server. For example, add a bad route to the client on YourSshServer, or take down the server's network interface, or pause the server if it is a VM. Once the communication is broken, given the options listed above, the connection should time out in about 20 seconds. But it won't. It appears to stay alive until a tcp timeout occurs. Is the ServerAliveInterval option only supposed to work if the client is idle? Or, at least, only if the client tries to transmit data less often than the interval? _______________________________________________ openssh-unix-dev mailing list openssh-unix-dev@xxxxxxxxxxx https://lists.mindrot.org/mailman/listinfo/openssh-unix-dev