Eu não sei xdebug
, mas não acho que seja relevante. É apenas um problema de encaminhamento de porta ssh. O problema é que a sessão ssh anterior no servidor ainda está em execução, o que significa que ainda usa a porta remota.
Uma solução é matar a sessão ssh anterior. Basta dar uma olhada com ps axu
e kill
.
A outra solução é modificar a configuração do sshd que o servidor faz regularmente ao cliente e mata a sessão se nenhuma resposta for recebida. Para fazer isso, você teria que editar /etc/ssh/sshd_config
e definir ClientAliveInterval
para algo, por exemplo, ClientAliveInterval 30
, o que significa que o servidor tentará alcançar o cliente após 30 segundos se nenhum dado for recebido.
Para mais alguns detalhes, copiei a parte relevante de 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.