Encaminhamento de porta SSH

8

Quero conectar-me ao meu computador (local) atrás 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.

Ao fazer login no servidor público, posso verificar se o túnel está funcionando:

ssh -p 8000 localhost

O que abre o ssh no computador local.

Estou suspeitando de algo errado que o servidor público deve agir como proxy transparente? Ou como fazê-lo funcionar assim.

mito
fonte

Respostas:

11

A porta remota SSH encaminhará a ligação padrão para localhost / loopback por motivos de segurança. Muitas vezes, não é preferível permitir que outros hosts acessem suas portas encaminhadas.

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

  • Habilite a GatewayPortsopção no servidor.
  • Especifique um endereço de ligação, ou *para vincular a todos os endereços, no cliente.

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

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

Dan Carley
fonte
0

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

A solução seria editar seu / etc / ssh / sshd_config (ou equivalente), configurando GatewayPorts como yes ou para clientes especificados. Caso você escolha a versão mais recente, será necessário alterar sua solicitação de encapsulamento para algo como -R *: 8000: localhost: 22.

andol
fonte