Como scp através de dois servidores intermediários para um servidor de terceiro salto [duplicado]

2

Tenho visto muitos exemplos de scp por meio de um servidor intermediário para um servidor de segundo salto por meio do operador ProxyCommand , de modo que:

A:/infile.txt -> B -> C:/outfile.txt

Que se parece com o seguinte, de A:

scp -o 'ProxyCommand ssh userB@hostB nc %h %p' infile.txt userC@hostC:"~/outfile.txt"

Minha pergunta é como scp por meio de dois servidores intermediários para um servidor de terceiro salto, como:

A:/infile.txt -> B -> C -> D:/outfile.txt

Estou procurando uma maneira de fazer isso usando o one-liner semelhante ao exemplo do segundo salto fornecido acima ... mas todas as respostas e meios são válidos se isso não for possível. p>

O que estou tentando fazer não é o mesmo que SCP por meio de vários hosts ou variantes, que usa o arquivo / etc / ssh / ssh_config para configurar aliases. Não é isso que estou querendo fazer, estou procurando uma linha única. Eu também não vi nenhum exemplo de dois ou mais hosts proxy entre a origem e o destino, então acredito que a questão é bastante válida.

    
por SYANiDE 03.12.2016 / 18:01

1 resposta

5

O novo openssh 7.3 fornece a opção -J , que permite que você crie o seu one-liner desejado:

scp -oProxyJump=userB@hostB,userC@hostC infile.txt userD@hostD:"~/outfile.txt"

Na página de manual :

ProxyJump

Specifies one or more jump proxies as [user@]host[:port]. Multiple proxies may be separated by comma characters and will be visited sequentially. Setting this option will cause ssh(1) to connect to the target host by first making a ssh(1) connection to the specified ProxyJump host and then establishing a TCP forwarding to the ultimate target from there.

    
por 03.12.2016 / 19:43

Tags