When SSHKeepAlive is enabled, dropbear idletimeout is not working as expected.
Potential fix would be
@process_packet.c :80
/* Ignore these packet types so that keepalives don't interfere with
idle detection. This is slightly incorrect since a tcp forwarded
global request with failure won't trigger the idle timeout,
but that's probably acceptable */
if (!(type == SSH_MSG_GLOBAL_REQUEST || type == SSH_MSG_REQUEST_FAILURE
/*Add below condition to include channel failure case*/
|| type == SSH_MSG_CHANNEL_FAILURE))
{
ses.last_packet_time_idle = now;
}
Keep alive replies are coming with the above mentioned type.
Suggestions are welcome.