Usando SCP em uma cadeia SSH existente? Possível?

Usando SCP em uma cadeia SSH existente? Possível?

O SCP estabelece uma nova conexão ao copiar arquivos, o que às vezes pode dificultar se houver firewalls envolvidos.

Por exemplo,

Host-A <--> Host-B <--> Host-C <--> Host-D

  • O Host-A é conectado ao Host-B via SSH e, em seguida, o Host-B é conectado ao Host-C via SSH e, em seguida, ao Host-D.
  • O Host-A não pode se conectar a outros computadores além do Host-B, o Host-B só pode se conectar ao Host-A e ao Host-C, o Host-C só pode se conectar ao Host-B e ao Host-D e o último Host-D pode conecte apenas ao Host-C.

O comando (no Host-D)scp /home/usuário/arquivo Host-A:/home/usuário/novoarquivotentarei criar um novo túnel SSH entre os dois, o que não é o que eu quero. Quero que a cadeia de túneis SSH existente copie o arquivo de volta pelos hosts anteriores até chegar ao Host-A.

Como posso fazer isso?

Responder1

Você pode reutilizar conexões existentes. Use a opção de linha de comando -Mou a opção de configuração (cliente) ControlMaster. Veresta respostano StackOverflow para obter detalhes.

Eu usei isso extensivamente, combinado com ControlPersistto para fechar a conexão somente após um atraso. Isso evita o tempo de conexão que você incorreria e melhora drasticamente o desempenho ao fechar e reconectar várias vezes (como costumo fazer durante o uso interativo).

Observe que ele não funciona muito bem para conectar-se a alguns hosts - GitHub, por exemplo - então você pode precisar excluir explicitamente certos hosts do uso desta opção, se você configurá-la como padrão.

informação relacionada