Encaminhamento automático para reverter o túnel

1

Eu tenho um Raspberry Pi (remoto) que está por trás de um NAT. Para acessá-lo do meu computador de casa (local), eu o conecto ao meu servidor ASW (servidor) via túnel reverso, como descrito em vários posts.

O Remote se conecta ao servidor:

ssh -f -N -T -R22222:localhost:22 -i ssh-ec2/ec-key.pem [email protected]

Eu posso me conectar ao meu servidor ASW via SSH e uma vez que eu estou logado, eu posso conectar ao meu Raspberry via:

ssh -p 22222 pi@localhost

Tudo funciona bem.

Meu problema agora é que eu quero fazer uma sessão remota com o intellij do meu local diretamente para o meu Raspberry remoto. Para isso eu preciso conectar ao meu servidor via SSH e depois inserir manualmente novamente o conectado ao meu controle remoto.

Como posso configurar um túnel para que eu possa me conectar ao meu servidor, mas diretamente à porta 22222 ? Eu tentei o seguinte da minha máquina local, mas a conexão expira:

ssh -l 9999:localhost:22222 [email protected] -i c:/privatekey.pem

Alguma sugestão do que estou fazendo de errado? Desculpe, eu sou totalmente novo no Linux, então me desculpem se essa é uma pergunta estúpida.

    
por Nickpick 30.11.2017 / 00:13

1 resposta

3

Quando você se conecta a partir do seu servidor ASW, conecta-se a localhost . Observe o que man 1 ssh diz:

-R [bind_address:]port:host:hostport

[…]

By default, the listening socket on the server will be bound to the loopback interface only. This may be overridden by specifying a bind_address. An empty bind_address, or the address *, indicates that the remote socket should listen on all interfaces. Specifying a remote bind_address will only succeed if the server's GatewayPorts option is enabled (see sshd_config(5)).

Em seguida, man 5 sshd_config diz:

GatewayPorts

Specifies whether remote hosts are allowed to connect to ports forwarded for the client. By default, sshd(8) binds remote port forwardings to the loopback address. This prevents other remote hosts from connecting to forwarded ports. GatewayPorts can be used to specify that sshd should allow remote port forwardings to bind to non-loopback addresses, thus allowing other hosts to connect. The argument may be no to force remote port forwardings to be available to the local host only, yes to force remote port forwardings to bind to the wildcard address, or clientspecified to allow the client to select the address to which the forwarding is bound. The default is no.

Para que funcione, você deve fazer algo assim:

por 13.12.2017 / 18:31