(apenas perguntei isso no SO, mas foi aconselhado a levá-lo aqui)
Consegui criar um túnel SSH reverso entre um Raspberry Pi 2 e um servidor meu (servidor que tem um IP estático) e funciona bem. A conta de usuário que estou usando no servidor é chamada "ksproxy" (não é realmente um "proxy", mas o que for).
Agora estou tentando fazer autossh
(do pacote Debian / Raspbian autossh
) funcionar também, mas não estou conseguindo. Eu posso estar perto.
(Alterei o IP real aqui nesta pergunta 37.xxx.yyy.zzz
para não postar o IP real do servidor)
Aqui está o que funciona bem: (sem autossh)
No Rpi:
rspi@antlia:~ $ ssh -N -R 20000:localhost:22 [email protected]
No servidor (aquele com o IP estático):
[email protected]:~$ ssh rspi@localhost -t -p 20000
rspi@localhost's password:
rspi@antlia:~ $
Então, tudo funciona bem: insiro a senha e recebo um terminal / prompt.
Posso até acessar o Raspberry Pi na minha área de trabalho (acessando o servidor pela primeira vez), fazendo:
ssh -t [email protected] "ssh rspi@localhost -p 20000"
[email protected] password:
rspi@localhost's password:
...
rspi@antlia:~
Ele primeiro pede a senha do servidor, depois a senha do Pi e está tudo bem.
Por enquanto, tudo bem.
Agora eu tento o mesmo, mas desta vez com autossh:
rspi@antlia:~ $ autossh -M 20000 -N -i /home/rspi/.ssh/id_rsa [email protected]
[email protected]:~$ ssh rspi@localhost -p 20000
Isso "funciona", mas está preso lá, sem fazer nada.
Eu tentei "-vvv" a saída dos comandos ssh, mas isso apenas mostra que nada está acontecendo.
Se eu tentar outra porta, ela falhará:
[email protected]:~$ ssh rspi@localhost -p 1234
ssh: connect to host localhost port 1234: Connection refused
Se eu tentar a porta correta (20000), mas desta vez com o -t
param, a mesma coisa: "funciona", mas não recebo nenhum terminal / prompt.
Aqui está a -vvv
saída
[email protected]:~$ ssh -vvv rspi@localhost -t -p 20000
OpenSSH_6.7p1 Debian-5+deb8u1, OpenSSL 1.0.1k 8 Jan 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to localhost [127.0.0.1] port 20000.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/ksproxy/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/ksproxy/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
...
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u1
Não está pedindo senha, não está mostrando nenhum terminal / prompt.
O que não estou entendendo aqui ou fazendo errado?
Observe que não acho que seja um problema de firewall, pois o método "não autossh" funciona bem (mas não recebo o recurso "sempre ativo" / reconectado). Eu realmente gostaria que o autossh funcionasse (sei que poderia encontrar uma solução alternativa, como se algum crontab reiniciasse automaticamente meu túnel SSH manual, mas isso provavelmente seria mais frágil do que fazer o autossh funcionar).
fonte