Why does
ssh -N -R 2222:localhost:22 <bluehost_user>@<bluehost_ip>
result in a "Remote port forwarding failed for listen port" error?
Eu recebo este aviso exato quando tento usar uma porta que já está sendo tomada no lado remoto.
A saída de netstat
de bluehost
indica que algo já está escutando na porta 2222
. Não mostra o que é isso.
Soluções:
- Altere
2222
na sua invocação dessh
para outra porta que não esteja em uso embluehost
. Basta torná-lo maior que1023
porque os usuários comuns não podem se vincular a portas conhecidas ; caso contrário, você receberá o mesmo aviso, independentemente de a porta estar em uso ou não. - Ou identifique o processo de escuta (em
bluehost
) comsudo lsof -i TCP:2222
; terminar ou reconfigurá-lo para tornar a porta2222
disponível.
Editar:
No seu caso, essa parte de man ssh
parece importante:
-R [bind_address:]port:host:hostport
-R [bind_address:]port:local_socket
-R remote_socket:host:hostport
-R remote_socket:local_socket
[…] By default, TCP listening sockets on the server will be bound to the loopback interface only. This may be overridden by specifying a
bind_address
. An emptybind_address
, or the address ‘*
’, indicates that the remote socket should listen on all interfaces. Specifying a remotebind_address
will only succeed if the server'sGatewayPorts
option is enabled (seesshd_config(5)
).
Isso significa que você deve ter GatewayPorts yes
no sshd_config
on bluehost
. Leia man 5 sshd_config
para saber mais. Não esqueça de recarregar o serviço depois.