Estou tentando configurar um contêiner docker que uso para ignorar firewalls / NATS para permitir o acesso SSH aos computadores por trás dessas barreiras de roteamento. Em essência, eu tenho um serviço SSH ouvindo dentro de um contêiner docker, ao qual meus outros computadores se conectam, abrindo um encaminhamento de porta SSH reverso e, em seguida, se eu quiser me conectar a um computador atrás de um firewall, eu me conecto ao meu servidor proxy dockerizado na porta reversa. Exemplo:
Firewalled computer " Bob " se conecta ao servidor proxy:
ssh -R 2024:localhost:22 -N remote.server
Em seguida, eu me conecto ao servidor remoto na porta 2024
de modo a seguir o túnel de volta para baixo e se conectar a localhost:22
em bob:
ssh -p 2024 remote.server
Tudo isso funciona muito bem quando não está dockerized, no entanto, quando tentei mover isso para um serviço dockerized, descobri que meu sshd
o servidor dentro do contêiner docker teimosamente se recusa a abrir a porta remota para a frente. Conectando com ssh -vvv
na primeira etapa acima dá:
...debug1: Entering interactive session.debug1: pledge: networkdebug3: receive packet: type 4debug1: Remote: Server has disabled port forwarding.debug3: receive packet: type 82debug1: remote forward failure for: listen 2024, connect localhost:22Warning: remote port forwarding failed for listen port 2024debug1: All remote forwarding requests processed
O que soa muito como o meu sshd
não está configurado para permitir o encaminhamento remoto de porta. No entanto, meu sshd_config
parece pensar que é:
# tail /etc/ssh/sshd_config -n 5GatewayPorts yesAllowTcpForwarding yesAllowStreamLocalForwarding yesPermitTunnel yesUsePrivilegeSeparation no
De fato, correndo com ssh -ddd
dentro do contêiner do docker e, em seguida, a conexão com a linha acima mostra primeiro:
debug3: /etc/ssh/sshd_config:91 setting GatewayPorts yesdebug3: /etc/ssh/sshd_config:92 setting AllowTcpForwarding yesdebug3: /etc/ssh/sshd_config:93 setting AllowStreamLocalForwarding yesdebug3: /etc/ssh/sshd_config:94 setting PermitTunnel yesdebug3: /etc/ssh/sshd_config:95 setting UsePrivilegeSeparation no
Seguido por:
debug1: server_input_global_request: rtype tcpip-forward want_reply 1debug1: server_input_global_request: tcpip-forward listen localhost port 2024debug1: server_input_global_request: rtype no-more-sessions@openssh.com want_reply 0
Portanto, claramente minha configuração está sendo definida corretamente, mas parece que o cliente ainda acha que o servidor não pode fazer o encaminhamento de porta. Como posso convencer o servidor openssh a realizar o encaminhamento remoto? O que poderia causar essa falha?
O cliente está em execução OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
, o servidor está em execução OpenSSH_6.7p1 Debian-5+deb8u4
, a versão docker é 17.09.1-ce
no Amazon Linux 2017.09
.
Obrigado!