GNU/Linux >> Belajar Linux >  >> Linux

File rsync melalui host perantara

Pertanyaan ini pada dasarnya dijawab di tempat lain, termasuk di sini untuk scp dan di sini untuk rsync. Karena yang terakhir menyertakan jawaban saya, tetapi tidak ada jawaban yang diterima, saya akan mengulanginya di sini.

Seperti yang Anda catat, Anda dapat menggunakan rsync -e | --rsh opsi, tetapi ini akan menjadi sedikit lebih rumit:

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

Atau, jika versi ssh Anda cukup baru (OpenSSH>=v7.3), Anda dapat menggunakan -J (ProxyJump ) opsi

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

Perhatikan bahwa saya menggunakan -A (penerusan agen) tetapi juga harus bekerja dengan otentikasi kata sandi jika Anda tidak menggunakan kunci, dan, tentu saja, Anda dapat mengganti proxy dengan B dan dest dengan C dalam contoh Anda.

Jika kebetulan Anda tidak memiliki ssh yang cukup baru versi (>=5.3, IIRC), Anda dapat menggunakan netcat bukannya -W opsi untuk ssh :

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

Akhirnya, seperti yang sudah disebutkan dalam komentar, Anda dapat meletakkan ProxyCommand ke dalam $HOME/.ssh/config Anda file sehingga Anda tidak perlu memiliki baris perintah yang rumit. Secara khusus, tambahkan sesuatu seperti ini:

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

Atau, gunakan ProxyJump untuk OpenSSH>=v 7.3:

Host C
  ProxyJump PROXYHOST

Maka Anda seharusnya dapat melakukan:

rsync -azv foo/ C:./foo/

Linux
  1. Bagaimana Cara Scp Melalui Mesin Menengah??

  2. Cadangkan file Anda dengan rsync

  3. Menggunakan rsync untuk Menyinkronkan File

  1. cp -r tanpa file tersembunyi

  2. rsync N file terbaru dalam direktori

  3. Bagaimana cara scp melalui mesin perantara?

  1. Linux setara dengan robocopy?

  2. Pencadangan Jarak Jauh Terenkripsi melalui Rsync?

  3. Bagaimana cara menggunakan rsync dengan alamat IPv6 melalui SSH?