Estou fazendo o encaminhamento reverso de porta ssh para acessar via ip público um servidor web acessível apenas em local.
Depois de executar este comando no meu laptop:
ssh -v -o "ExitOnForwardFailure yes" -o GatewayPorts=yes -g username@remoteserver -R '*:9080:localhost:3000'
quando eu visito no meu navegador http://remoteserver:9080
, vejo o conteúdo servido pelo servidor que está sendo executado no host local (meu laptop) na porta 3000.
Isso funciona como esperado quando feito no meu laptop em casa ou conectado à internet através do meu iPhone (conexão 3G conectada).
não funciona se eu estiver por trás da rede corporativa da empresa na qual estou trabalhando no momento:
- os comandos ssh se conectam com sucesso e até mesmo dizem
All remote forwarding requests processed
(veja os logs abaixo)
- mas: visitar
http://remoteserver:9080
de um cliente dentro da rede corporativa mostra apenas "não é possível conectar o erro"
- e: o servidor da Web em execução no laptop na porta 3000 não recebe nenhuma conexão
Atualização: Graças ao comentário de Paul, descobri que a conexão com http://remote server:9080
com um cliente fora da rede corporativa funciona.
Por que (onde?) uma conexão da rede corporativa - > servidor remoto - > laptop na rede local [via ssh] bloqueado?
Eu tentei editar o final do comando para ler assim:
… -R '*:9080:local_ip_address_of_my_laptop:3000'
mas isso não muda nada.
Por que não está funcionando?
Como posso consertar isso?
Nos registros abaixo, vejo uma linha que não sei o que significa e não consegui encontrar o motivo / significado: debug1: Roaming not allowed by server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to remoteserver [IP_ADDRESS] port 22.
debug1: Connection established.
debug1: identity file redacted type 2
debug1: identity file redacted type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3p2 Debian-9etch3
debug1: match: OpenSSH_4.3p2 Debian-9etch3 pat OpenSSH_4*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA redacted
debug1: Host 'remoteserver' is known and matches the RSA host key.
debug1: Found key in /Users/redacted/.ssh/known_hosts:17
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering DSA public key: redacted
debug1: Server accepts key: pkalg ssh-dss blen 434
debug1: Authentication succeeded (publickey).
Authenticated to remoteserver ([ip_address]:22).
debug1: Remote connections from *:9080 forwarded to local address localhost:3000
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: remote forward success for: listen 9080, connect localhost:3000
debug1: All remote forwarding requests processed
debug1: Sending environment.
debug1: Sending env LC_CTYPE = UTF-8
debug1: Sending env LANG =
debug1: Sending env LC_ALL = fr_FR