encaminhamento de porta SSH

8

Eu quero me conectar ao meu computador (local) por meio do NAT por meio de um servidor público acessível (público).

No local:

ssh -g -R 8000:localhost:22 user@public

Então, em público:

ssh -p 8000 user@public 

Mas estou recebendo error: Connection refused.

Quando eu faço o login no servidor público, posso verificar se o túnel está funcionando:

ssh -p 8000 localhost

Que abre o ssh no computador local.

Estou suspeitando de algo errado que o servidor público deve agir como proxy transparente? Ou como fazer isso funcionar assim.

    
por mito 25.11.2009 / 11:52

2 respostas

11

A porta remota SSH encaminha a ligação padrão ao host local / loopback para fins de segurança. Geralmente, não é preferível permitir que outros hosts acessem suas portas encaminhadas.

Para substituir esse comportamento, você precisará fazer duas coisas:

  • Ative a opção GatewayPorts no servidor.
  • Especifique um endereço de ligação ou * para ligar a todos os endereços no cliente.

    ssh -R \*:8000:localhost:22 user@public
    

Escape o asterisco para garantir que seu shell não o expanda.

    
por 25.11.2009 / 12:15
0

Isso parece mais um problema com as configurações públicas do computador remoto. Por padrão, o openssh sshd (que eu acho que é o que está sendo usado) a configuração GatewayPorts se transformou em no, o que força o encaminhamento de porta remota a escutar apenas no host local.

A solução seria então editar seu / etc / ssh / sshd_config (ou equivalente), configurando o GatewayPorts para yes ou para clientspecified. Caso você escolha o mais tarde, você terá que alterar sua solicitação de túnel para algo como -R *: 8000: localhost: 22.

    
por 25.11.2009 / 12:14