Eu configurei algumas 100 caixas embutidas para entrar em contato com a HQ abrindo túneis ssh reversos, cada um sob uma nova porta. Isso funciona principalmente, mas hoje encontrei um problema ao usar o túnel por meio de uma conexão GPRS de baixa largura de banda (ou baixa qualidade?).
A máquina remota que abre o túnel está conectada ao inter através de um (tão desconhecido) roteador 3G que provavelmente tem apenas um GPRS, uma conexão EDGE na melhor das hipóteses.
Conectado à minha máquina, posso ver a entrada ssh
da conexão na porta 1234:
me@machine:~$ sudo nmap -sS -p 1234 --open localhost
Starting Nmap 5.21 ( http://nmap.org ) at 2014-11-27 15:27 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Hostname localhost resolves to 2 IPs. Only scanned 127.0.0.1
PORT STATE SERVICE
1234/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
me@machine:~$
Agora, tentando abrir a conexão ssh, recebo um erro Connection timed out
:
me@machine:~$ ssh -vp 1234 localhost
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to localhost [::1] port 1234.
debug1: fd 3 clearing O_NONBLOCK
debug1: Connection established.
debug1: identity file /home/cts/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-4096
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-4096
debug1: identity file /home/cts/.ssh/id_rsa-cert type -1
debug1: identity file /home/cts/.ssh/id_dsa type -1
debug1: identity file /home/cts/.ssh/id_dsa-cert type -1
debug1: identity file /home/cts/.ssh/id_ecdsa type -1
debug1: identity file /home/cts/.ssh/id_ecdsa-cert type -1
Connection timed out during banner exchange
me@machine:~$
Outras portas funcionam bem, assim como essa quando foi (verificada) conectada a uma rede 3G.
Eu tentei algo que às vezes ajuda ao fazer isso através de conexões via satélite - ssh -o "ConnectTimeout 99" -o "ServerAliveCountMax 5" -vp 1234 localhost
, mas isso também não ajudou.
Suponho que isso tenha algo a ver com o
a) o provedor sem fio filtrando algo em sua rede GPRS, ele não faz em sua rede 3G
ou
b) a latência ruim da conexão GPRS para o meu túnel.
Alguém tem uma idéia de como lidar com essa situação ou entender melhor o que está acontecendo (ou, melhor dizendo, não está acontecendo) aqui? Adicionar mais v
s ao comando não mostra mais nenhuma saída de depuração, btw.