GNU/Linux >> Znalost Linux >  >> Linux

Soubory Rsync přes zprostředkujícího hostitele

Tato otázka je v podstatě zodpovězena jinde, včetně zde pro scp a zde pro rsync. Vzhledem k tomu, že poslední obsahuje mou odpověď, ale žádná odpověď nebyla přijata, zopakuji to zde.

Jak jste poznamenali, můžete použít rsync 's -e | --rsh možnost, ale bude to trochu složitější:

rsync -azv -e 'ssh -o "ProxyCommand ssh -A PROXYHOST -W %h:%p"' foo/ dest:./foo/

Nebo, pokud je vaše verze ssh je dostatečně nový (OpenSSH>=v7.3), můžete použít -J (ProxyJump ) možnost

rsync -azv -e 'ssh -A -J [email protected]:PORT' foo/ dest:./foo/

Všimněte si, že používám -A (přesměrování agenta), ale mělo by to fungovat i s ověřováním heslem, pokud nepoužíváte klíče, a samozřejmě můžete nahradit proxy s B a dest s C ve vašem příkladu.

Pokud náhodou nemáte dostatečně nový ssh verze (>=5.3, IIRC), můžete použít netcat místo -W možnost na ssh :

rsync -azv -e 'ssh -o "ProxyCommand ssh -A PROXYHOST nc %h %p"' foo/ dest:./foo/

Nakonec, jak již bylo uvedeno v komentářích, můžete zadat ProxyCommand do vašeho $HOME/.ssh/config soubor, takže nemusíte mít tak složitý příkazový řádek. Konkrétně přidejte něco takového:

Host C
  ProxyCommand ssh -A PROXYHOST -p 22 -W %h:%p

Nebo pomocí ProxyJump pro OpenSSH>=v 7.3:

Host C
  ProxyJump PROXYHOST

Pak byste měli být schopni udělat:

rsync -azv foo/ C:./foo/

Linux
  1. Ssh – Jak vzdáleně upravovat soubory přes Ssh?

  2. Jak selektivně umlčet Rsync?

  3. Jak Scp přes střední stroj?

  1. Používat zařízení přes SSH?

  2. rsync N nejnovějších souborů v adresáři

  3. linuxové sloučení složek:rsync?

  1. Použití rsync k synchronizaci souborů

  2. Jak scp přes prostřední stroj?

  3. Jak mohu použít rsync s adresou IPv6 přes SSH?