![Usando SCP em uma cadeia SSH existente? Possível?](https://rvso.com/image/1552376/Usando%20SCP%20em%20uma%20cadeia%20SSH%20existente%3F%20Poss%C3%ADvel%3F.png)
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 -M
ou a opção de configuração (cliente) ControlMaster
. Veresta respostano StackOverflow para obter detalhes.
Eu usei isso extensivamente, combinado com ControlPersist
to 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.