O comando para encaminhar a porta 80 de sua máquina local ( localhost
) para o host remoto na porta 8000 é:
ssh -R 8000:localhost:80 oli@remote-machine
Isso requer um ajuste adicional no servidor SSH, adicione as linhas a /etc/ssh/sshd_config
:
Match User oli
GatewayPorts yes
Em seguida, recarregue a configuração pelo servidor executando sudo reload ssh
.
A configuração GatewayPorts yes
faz com que o SSH vincule a porta 8000 ao endereço curinga, para que ele fique disponível para o endereço público de remote-machine
( remote-machine:8000
).
Se você precisar ter a opção de não vincular tudo ao endereço curinga, altere GatewayPorts yes
para GatewayPorts clientspecified
. Como o ssh
se vincula ao endereço de loopback por padrão, é necessário especificar um bind_address
vazio para vincular o endereço curinga:
ssh -R :8000:localhost:80 oli@remote-machine
O :
antes de 8000
é obrigatório se GatewayPorts
estiver definido como clientspecified
e você quiser permitir o acesso público a remote-machine:8000
.
Trechos manuais relevantes:
ssh (1)
-R [bind_address:] porta: host: hostport
Especifica que a porta especificada no host remoto (servidor) deve ser encaminhada para o host e porta fornecidos no lado local. Isso funciona alocando um soquete para escutar porta no lado remoto, e sempre que uma conexão é feita para essa porta, a conexão é encaminhada através do canal seguro e é feita uma conexão ao porto host da porta da máquina local. Por padrão, o soquete de escuta no servidor será vinculado apenas à interface de loopback. Isso pode ser substituído especificando-se um bind_address. Um bind_address vazio, ou o endereço '*', indica que o socket remoto deve escutar em todas as interfaces. Especificar um bind_address remoto só terá sucesso se a opção GatewayPorts do servidor estiver habilitada (ver sshd_config (5)) .
sshd_config (5)
GatewayPorts
Especifica se os hosts remotos podem se conectar às portas encaminhadas para o cliente. O GatewayPorts pode ser usado para especificar que o sshd deve permitir que os encaminhamentos de porta remota sejam vinculados a endereços que não sejam de loopback, permitindo que outros hosts se conectem. O argumento pode ser 'no' para forçar o reencaminhamento de portas remotas a estar disponível apenas para o host local, 'yes' para forçar redirecionamentos remotos de portas a serem vinculados ao endereço curinga ou 'clientspecified' para permitir que o cliente selecione o endereço para o qual o encaminhamento está vinculado. O padrão é 'não'.
Veja também: