ssh comando de proxy com o netcat

0

Em um exemplo assim:

Host destination
  ProxyCommand ssh gateway nc %h %p

A conexão entre o gateway e o destino é criptografada? Estou confuso porque tenho duas hipóteses e ambas não são convincentes:

  1. Não é criptografado. O stdin na origem passa pela conexão ssh do gateway de origem criptografado e é descriptografado antes de ser passado para nc, ou seja, o stdin do nc é o mesmo que stdin no cliente ssh na origem. Mas eu acho que o% p é 22, a porta ssh - que não se encaixa nessa hipótese.
  2. Ele é criptografado, o daemon sshd no gateway passa para os dados nc criptografados. Então diga em vez de executar nc, estamos executando "cat", o daemon sshd também passa os dados criptografados? Isso também não parece certo.
por bill 27.07.2015 / 20:51

1 resposta

2

Claro que é criptografado! Apenas para entender bem o que está acontecendo aqui:

[ client $ ssh destination ]
  |
  '-> [ gateway $ nc destination 22 ]
        |
        '-> [ destination $ whatever]

No cliente, você executa apenas ssh destination . Isso é traduzido em ssh gateway nc destination 22 .

Portanto, o comando executado pela primeira vez é ssh gateway com o comando. Nós criptografamos o primeiro passo com certeza.

O comando nc destination 22 é executado nesta sessão em gateway server. E basicamente faz o redirecionamento de todo o I / O para o host destination , assim como é (mas nós já estamos no canal criptografado!).

Assim, você fará mais uma vez a troca de chaves com a autenticação com destination e, depois que ela for bem-sucedida, você obterá o prompt do shell lá. Então, é novamente criptografado.

    
por 27.07.2015 / 22:59