Por favor, explique este formato de comando de conexão SSH

1

O problema que tenho é tentar entender o uso do redirecionamento de porta com o comando ssh como mostrado abaixo. A confusão é baseada no uso de localhost, onde minha máquina é localhost, mas parece que ela pode estar fazendo referência ao servidor remoto. Por causa disso, não está claro o que está acontecendo e, portanto, estou procurando informações e links para documentos que possam esclarecer o que está ocorrendo no comando ssh abaixo.

ssh -f myUserID@someip -L [bind_address:]port:host:hostport
  • Os detalhes dos itens acima retirados de um manual: Especifica que a porta especificada no host local (cliente) deve ser encaminhada para o host e a porta especificados no lado remoto.

Com relação ao comando ssh, me disseram que o lado esquerdo é considerado o local (cliente).

Portanto, com uma sintaxe dos seguintes

ssh -f myUserID@someip -L 1234:localhost:9200

onde o lado esquerdo não contém um IP é localhost assumido para então estar na porta 1234?

E eu não tenho idéia de como interpretar a segunda metade do localhost: 9200?

Como devo interpretar o comando ssh acima?

[ 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 connection 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 specified with an alternative syntax: [bind_address/]port/host/hostport or 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. However, 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.

Preciso de clareza no formato que estou postando. Porque a forma como a definição lê e a maneira como o comando é que eu estou postando parece que estou porta encaminhando um localhost 1234 para o localhost 9200, que faz sentido zero quanto à forma como ele está me permitindo comunicar com o servidor remoto .

Substitua-o se for necessário

    
por Elijah 28.12.2017 / 19:06

2 respostas

0

Eu apenas pesquisei rapidamente e fiz isso ...

link

Por favor, leia isto e vá para a parte:

"Encaminhamento remoto de portas: Torne os recursos locais acessíveis em um sistema remoto"

Isso é exatamente o que seu comando está fazendo.

Talvez pesquise um pouco mais da próxima vez. Tudo o que eu tinha para colocar na caixa de pesquisa era ssh "-L", então as respostas com -L voltariam.

Atenciosamente

bob

    
por 28.12.2017 / 19:54
3

-L1234:localhost:9200

  • -L : executa o encaminhamento local (encaminhamento do cliente local para o remoto)
  • 1234 : ouça em tcp / 1234 na máquina local; aquele do qual você está executando ssh
  • localhost:9200 : o destino para o qual encaminhará o tráfego. O destino é descrito da perspectiva da máquina de destino (" someip " no seu exemplo). Portanto, localhost aqui significa someip e 9200 significa tcp / 9200 nessa máquina remota.

Sua máquina local aceitará conexões na porta 1234 e encapsulará esse tráfego para a porta 9200 no host remoto.

Observe que o destino pode ser qualquer máquina que possa ser acessada pelo controle remoto, não apenas localhost da perspectiva do controle remoto. Portanto, se você quiser encaminhar para uma máquina acessível a partir de someip , mas não diretamente de sua máquina local, você pode usar um argumento como

-L1234:otherip:9200
    
por 28.12.2017 / 19:54