Temos a seguinte situação:
- Minha maquina
- Uma máquina de gateway
- A máquina alvo
Não tenho direitos de root nos dois e três. Também não consigo realmente armazenar informações (no máximo 200 MiB) na máquina nº 2 (já que é um gateway para o restante da rede, não mais que isso). Na máquina nº 3, há uma pasta com aproximadamente 3 GiB de tamanho que eu quero copiar para o local. Não consigo SSH de 1 a 3, mas posso SSH a 2 e depois a 3. Também não é possível configurar um par de chaves público-privado entre os nºs 2 e 3, mas existe um par de chaves instalado entre os nºs 1 e 2.
Normalmente eu uso a combinação de SSH e tar para fazer isso:
ssh name@host "tar cf - folder" > folder.tar
Mas, neste caso, isso exigiria algum tipo de aninhamento, e parece que não consigo fazer isso.
Então, qual seria uma boa maneira de obter os dados de # 3 para # 1?
fonte
ProxyCommand
essh -W
os doisssh
comandos podem ser combinados em uma única linha de comando. Se você possui uma versão muito recente do cliente OpenSSH, há um argumento que permitirá fazer tudo isso com um únicossh
comando.Você também pode usar o recurso de sessão mestre de versões mais recentes do SSH. Está descrito aqui:
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing
Provavelmente, tudo o que você precisa é editar / criar seu .ssh / config. Adicione definições que controlam as sessões principais:
Em seguida, você pode especificar sua definição de servidor de primeiro salto como:
E o segundo salto usará seu servidor de primeiro salto como proxy:
Não esqueça de criar o diretório ~ / .ssh / cm_socket e as permissões de configuração devem ser 644.
Em seguida, você poderá SSH ou SCP diretamente de / para seu segundo servidor. Pode haver mais servidores encadeados como este.
fonte
ControlMaster
seja necessária para o proxy. A página mais relevante desse wikibook é esta: en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts