Tubo simples
Tente isto:
ssh one 'cat file' | ssh two 'cat > file'
O primeiro deve enviar o conteúdo do arquivo para sua máquina, enquanto o segundo deve enviar para a segunda máquina. Eu calcularia uma soma de verificação em ambas as extremidades após a transferência, para garantir que nada se perdesse ou fosse distorcido ao longo do caminho.
Túneis elaborados
Para aplicativos mais elaborados, você pode usar túneis ssh. Por exemplo, você poderia tentar algo assim:
ssh -R 5001:127.0.0.1:5002 one
ssh -L 5002:127.0.0.1:22 two
Em seguida, você pode abrir uma conexão em one para a máquina localhost port 5001 e ela será encaminhada duas vezes e terminará como uma conexão em two to localhost port 22 . Esta é a porta ssh, então você pode usar isso para outro scp, ou para o rsync, ou o que for. Você também pode iniciar um rsync server em two e encaminhar a porta 873 em vez de 22. Ou você pode usar nc em ambos os lados para transferir dados brutos, usando um número de porta arbitrário.
O principal benefício entre a abordagem acima é que você tem uma conexão tcp bidirecional entre as duas máquinas, em vez de apenas um tubo unidirecional. Dessa forma, as duas partes podem trocar informações, o que é particularmente importante no caso rsync .