SSH do cliente para o Linux incorporado através do servidor

SSH do cliente para o Linux incorporado através do servidor

Quero poder conectar-me diretamente de qualquer lugar a um Linux incorporado (chamado C) que não tenha um endereço IP público.

C pode configurar uma conexão com o servidor (com SSH -R) e, se eu usar SSH no servidor, posso usar SSH no Linux incorporado.

No entanto, eu gostaria de poder fazer o SSH do cliente para C sem precisar primeiro fazer o SSH no servidor. (Não consigo configurar uma conexão com SSH -R de C para o cliente)

Isso é possível, em caso afirmativo, como?

Responder1

Você pode fazer isso com bastante facilidade. Uma maneira é usar o encaminhamento remoto de porta do SSH, pelo qual C diz ao servidor para encaminhar uma porta de volta para ele, algo como:

ssh -R 2222:localhost:22 server

Este comando, quando executado a partir de C, dirá ao servidor para pegar qualquer conexão com a porta 2222 e encaminhá-la para C na porta 22.

Da mesma forma, você pode configurar o encaminhamento de porta no servidor por meio de regras de firewall.

Responder2

Se quiser se conectar à porta encaminhada, você precisará de quatro coisas:

  • Especifique o IP/nome do host público do servidor como o primeiro argumento para -R, caso contrário, ele estará escutando apenas em localhost, o que obviamente não é acessível de fora do servidor.
  • Configure o servidor com GatewayPorts, o que permitirá que as portas encaminhadas sejam acessíveis de fora
  • Use a -gopção para basicamente permitir o mesmo do lado do cliente
  • Abra a porta 2222no firewall do servidor.

O comando pode ser assim:

ssh -g -R server:2222:localhost:22 server

informação relacionada