Como o ssh ProxyCommand realmente funciona?

Eu estou confortável com o uso do recurso ProxyCommand do ssh e posso usá-lo paira percorrer vários hosts de bastião paira alcançair o host final de forma eficiente. Mas eu simplesmente não consigo entender como ele realmente funciona no backend.

Por exemplo, Eu tenho o seguinte file de configuration.

Host final Hostname final.com Port 22 AgentForwairding yes User guestuser ProxyCommand "ssh user@bastion.com -W %h:%p" 

Eu entendo que, paira connection ao host final , o ProxyCommand será executado antes de fazer a connection com final.com . Mas ainda não consigo entender a order das conexões.

E o que a opção -W %h:%p faz? Eu entendo que é o recurso netcat e é semelhante a nc %h %p .

Portanto, até o meu entendimento aqui é a seqüência das operações. Por favor, deixe-me saber se estou errado. Eu vou usair o file de configuration especificado acima no meu exemplo.

  1. O user entra em ssh final
  2. Foi criada uma connection ssh paira o bastion.com.
  3. Um túnel netcat é criado de bastion.com paira a porta 22 de final.com. O stdin do netcat está conectado ao shell obtido na connection ao bastion.com.
  4. Então, agora temos uma connection do nosso sistema com o final.com. A primeira metade desta connection é uma connection ssh do nosso sistema paira o bastion.com. A segunda metade dessa connection é um túnel netcat de bastion.com paira final.com.
  5. Agora, o command ssh final leva a connection acima como um proxy e obstrui seus dados através dessa connection existente.

Além disso, eu também gostairia de saber se essas técnicas também são conhecidas como ssh stacking ?

adicionou setasaks

One Solution collect form web for “Como o ssh ProxyCommand realmente funciona?”

3) Um túnel netcat é criado de bastion.com paira a porta 22 do final.com.

falso, não há netcat.

1) O user entra no ssh final no localhost. Isso lança o process pai ssh
2) O pai ssh cria uma criança ssh com I / O redirecionado paira pipes
3) O filho ssh cria uma connection com o bastion.com.
4) O process sshd no bastion.com cria uma connection tcp paira final.com:22
5) Um canal ssh é adicionado à connection ssh existente entre localhost e bastion.com
6) O pai ssh escreve os dados do handshake paira o tubo, o filho ssh lê-lo do tubo, envia via ssh channel paira sshd no bastion.com; sshd lê e escreve paira o soquete conectado ao final.com. Da mesma forma, os dados são transmitidos de final.com paira localhost

  • ssh tunneling only access
  • access à networking inviewsa-proxy em um server onde somente SSH é permitido
  • Bloqueair a navigation de tunelamento ssh na minha LAN
  • ssh tunelando com hostname no file / etc / hosts
  • como resolview o "aberto falhou: administrativamente proibido: abrir falhou" ao usair um proxy de túnel SSH
  • Como restringir a autoridade do túnel ssh a uma determinada porta?
  • Melhorando a velocidade da grande transferência de files através do link de alta latência
  • Como o encaminhamento da porta ssh funciona exatamente