Qual é o propósito da opção “-w timeout” do netcat quando o tunelamento ssh?

4

Estou na mesma situação exata da pessoa que postou outra pergunta , estou tentando encapsular conexões ssh através de um servidor de gateway em vez de ter que ssh no gateway e manualmente ssh novamente para o servidor de destino a partir dali. Estou tentando configurar a solução dada na resposta aceita, um ~/.ssh/config que inclui:

host foo
  User webby
  ProxyCommand ssh a nc -w 3 %h %p

host a
  User johndoe

No entanto, quando tento ssh foo , minha conexão permanece ativa por 3 segundos e depois morre com um erro Write failed: Broken pipe . Remover a opção -w 3 resolve o problema. Qual é o propósito desse -w 3 na solução original e por que ele está causando um erro Broken pipe quando eu o uso? Qual é o mal em omitir isso?

    
por jrdioko 03.09.2012 / 20:35

1 resposta

5

What is the purpose of that -w 3 in the original solution

Evita que processos nc órfãos sejam executados no host remoto quando a sessão ssh é encerrada incorretamente.

and why is it causing a Broken pipe error when I use it?

Tente aumentar o tempo limite de nc para 90 e definir ServerAliveInterval para 30 para ver se o problema desaparece:

host foo
    User webby
    ServerAliveInterval 30
    ProxyCommand ssh a nc -w 90 %h %p
    
por 04.09.2012 / 05:19