Tell me more ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Sometimes my local computer crashes when I'm in the middle of a xdebug session. When I reconnect to my remote server with a reverse shell I get this warning:

Warning: remote port forwarding failed for listen port 9000?

How can I recover instantly from my xdebug session after a crash from my local computer?

share|improve this question

1 Answer

up vote 3 down vote accepted

I don't know xdebug but I don't think it is relevant. It is just a ssh port forwarding issue. The problem is that the previous ssh session on the server is still running which means it still uses the remote port.

One solution is to kill the previous ssh session. Just have a look with ps axu and kill it.

The other solution is to modify the sshd configuration that the server regularly pings the client and kills the session if no reply is received. To do that you would have to edit /etc/ssh/sshd_config and set ClientAliveInterval to something, e.g. ClientAliveInterval 30 which means the Server will try to reach the client after 30 seconds if no data was received.

For some more details I copied the relevant part from man sshd_config

ClientAliveCountMax
        Sets the number of client alive messages (see below) which may be sent
        without sshd(8) receiving any messages back from the client. If this
        threshold is reached while client alive messages are being sent, sshd 
        will disconnect the client, terminating the session. It is important
        to note that the use of client alive messages is very different from
        TCPKeepAlive (below).  The client alive messages are sent through the 
        encrypted channel and therefore will not be spoofable. The TCP   
        keepalive option enabled by TCPKeepAlive is spoofable.  The client
        alive mechanism is valuable when the client or server depend on
        knowing when a connection has become inactive.

        The default value is 3.  If ClientAliveInterval (see below) is set to
        15, and ClientAliveCountMax is left at the default, unresponsive SSH
        clients will be disconnected after approximately 45 seconds.
        This option applies to protocol version 2 only.

ClientAliveInterval
        Sets a timeout interval in seconds after which if no data has been
        received from the client, sshd(8) will send a message through the
        encrypted channel to request a response from the client. The default
        is 0, indicating that these messages will not be sent to the client.
        This option applies to protocol version 2 only.
share|improve this answer
I will try ClientAliveInterval but I hope my computer doesn't crash anymore???? – Phpdna May 26 '12 at 20:38
@David i hope that too, try to solve your computer crashes – Ulrich Dangel May 26 '12 at 20:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.