Se a máquina host também estiver executando o software do servidor SSH e puder ser acessada pela Internet, você poderá usar o comando ssh -L 22065:127.0.0.1:22 [email protected]
. A opção -L
é usada da seguinte maneira:
-L [bind_address:]port:host:hostport
Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side. This
works by allocating a socket to listen to port on the local side,
optionally bound to the specified bind_address. Whenever a con‐
nection is made to this port, the connection is forwarded over
the secure channel, and a connection is made to host port
hostport from the remote machine. Port forwardings can also be
specified in the configuration file. IPv6 addresses can be spec‐
ified by enclosing the address in square brackets. Only the
superuser can forward privileged ports. By default, the local
port is bound in accordance with the GatewayPorts setting. How‐
ever, an explicit bind_address may be used to bind the connection
to a specific address. The bind_address of “localhost” indicates
that the listening port be bound for local use only, while an
empty address or ‘*’ indicates that the port should be available
from all interfaces.
Digamos que o endereço IP do host seja 10.0.0.5. De um sistema na Internet, você poderia estabelecer uma conexão com a porta 22065 no host com o comando ssh -p 22065 [email protected]
. Nota: você precisa fornecer um ID de usuário e uma senha válidos para o sistema convidado, mesmo que esteja usando o endereço IP público do host (estou usando um endereço do intervalo de endereços IP privados 10.xxx apenas para fins de exemplo), já que o connectivty será realmente tunelado para o convidado.
Quando a conexão à porta 22065 no host é feita, ela é encaminhada pelo túnel SSH estabelecido pelo sua primeira conexão SSH do host para o sistema convidado em 192.168.122.65. No que diz respeito a um cliente SSH na Internet, ele está indo diretamente para o sistema guest na porta 22065, embora esteja realmente se conectando à porta 22 desse sistema através do túnel SSH do host 10.0.0.5. Nota: para que isso funcione, a conexão SSH do host para o sistema convidado deve estar ativa no momento.
Onde coloquei 127.0.0.1
, você também poderia colocar 192.168.122.65
, mas como a conexão é com o localhost endereço, ou seja, o convidado em si, em vez de algum sistema externo a ele, eu usaria 127.0.0.1
Para as regras de firewall necessárias, você precisa ter uma regra no host e em quaisquer firewalls entre ela e a Internet que permitam conexões TCP de entrada à porta 22065 ou à porta que você selecionar. Você não precisará de nenhuma regra de firewall adicional no sistema convidado.