Ahilan Anantha <ahilan.anantha <at> gmail.com> writes:
[snip]
> But I don't know why it works when launching dbclient from the shell.
> You'd think it would just always kick dbclient.
> 

I misread the OpenSSH code. I read the "if" but not the "else" block. If
OpenSSH finds an "open session suitable for keepaliving" it will send an
SSH_MSG_CHANNEL_REQUEST.

dbclient does appear to service that. So probably that is what is happening
when there's an actual shell session.

Only when it can't find such a session, will it send an
SSH_MSG_GLOBAL_REQUEST... which dbclient does not implement. I suspect
that's what's going on when you ran dbclient in such a way that it only
has a tunnel.

I think it is fixable by just adding a handler for SSH_MSG_GLOBAL_REQUEST
for the dropbear client loop that just sends back SSH_MSG_REQUEST_FAILURE.

Ahilan

Reply via email to