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/