Sejauh ini, cara termudah adalah dengan menyalinnya melalui scp. Plus, sintaks ini sebenarnya berfungsi tidak seperti beberapa saran lainnya.
Anda tidak dapat mengalahkan sintaks ini untuk kemudahan. Ini memungkinkan Anda untuk menyalin, rsync, atau apa pun yang Anda inginkan secara rekursif tanpa harus repot-repot mempertimbangkan kemungkinan pipa yang rumit. Sintaks ini jelas secara intuitif, akan lebih mudah didukung oleh Sys Admin yang mengikuti Anda dan tidak menggunakan kucing secara sia - sia .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
Dari halaman manual scp : -3
Salinan antara dua host jarak jauh ditransfer melalui host lokal. Tanpa opsi ini, data disalin langsung antara dua host jarak jauh. Perhatikan bahwa opsi ini menonaktifkan pengukur kemajuan.
Dalam contoh di bawah ini
- Workstation Anda bernama MacBook-Pro.
- Dev Jump Box bernama devjumpserver
- Dev Application Server bernama devapplicationserver
- Apakah pada zona DNS LAN bernama .local
- QA Jump Box bernama qajumpserver
- Server Aplikasi QA diberi nama qaapplicationserver
- Apakah pada zona LAN DNZ bernama .local
- Kami akan melakukan salinan uji file 670GB / etc / hosts ;-)
- Asumsi dibuat bahwa Anda telah mengonfigurasi otentikasi kunci publik SSH.
Berikut adalah file ~ / .ssh / config yang mengatur akses langsung dari workstation Anda ke server aplikasi melalui lompatan yang sesuai (alias server benteng).
MacBook-Pro: ~ barrychapman $ cat ~ / .ssh / config
Tuan rumah *
ServerAliveInterval 60
Tuan rumah aplikasi
HostName devapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@devjumpserver.example.com -W% h:% p
Pengguna barrychapman
Host server aplikasi
HostName qaapplicationserver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@qajumpserver.example.com -W% h:% p
Pengguna barrychapman
MacBook-Pro: ~ barrychapman $
Menguji keberadaan file di server target, itu tidak akan ada.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
ls: tidak dapat mengakses / tmp / hosts: Tidak ada file atau direktori tersebut
Dibunuh oleh sinyal 1.
MacBook-Pro: ~ barrychapman $
Sekarang mari kita salin file dari server Aplikasi Dev ke Aplikasi QA melalui workstation Anda.
MacBook-Pro: ~ barrychapman $ scp -3 devapplicationserver: / etc / hosts qaapplicationserver: / tmp /
Dibunuh oleh sinyal 1.
Dibunuh oleh sinyal 1.
MacBook-Pro: ~ barrychapman $
Sekarang mari kita periksa keberadaan file yang disalin di Server Aplikasi QA. Ini akan ada di sana saat ini.
MacBook-Pro: ~ barrychapman $ ssh qaapplicationserver ls / tmp / hosts
/ tmp / hosts
Dibunuh oleh sinyal 1.
MacBook-Pro: ~ barrychapman $
Catatan
Saat menutup koneksi ProxyCommand, Anda akan melihat pesan peringatan "Dibunuh oleh sinyal 1". Ini SSH menghancurkan koneksi ProxyCommand dan tidak perlu khawatir. Anda dapat menyingkirkannya dengan menambahkan LogLevel Quiet
stanza konfigurasi host bastion Anda.