Kami memiliki situasi berikut:
- Mesin saya
- Mesin gateway
- Mesin target
Saya tidak memiliki hak root pada # 2 dan # 3. Saya juga tidak dapat benar-benar menyimpan informasi (tidak lebih dari 200 MiB) pada mesin # 2 (karena ini merupakan gateway ke seluruh jaringan, tidak lebih dari itu). Pada mesin # 3 ada folder, berukuran sekitar 3 GiB, yang ingin saya salin ke lokal. Saya tidak bisa SSH dari # 1 ke # 3, tapi saya bisa SSH ke # 2 dan kemudian ke # 3. Juga tidak mungkin untuk mengatur keypair pribadi publik antara # 2 dan # 3, tetapi ada keypair yang dipasang antara # 1 dan # 2.
Biasanya saya menggunakan kombinasi SSH dan tar untuk menyelesaikan ini:
ssh name@host "tar cf - folder" > folder.tar
Tetapi dalam hal ini itu akan membutuhkan semacam sarang, dan sepertinya saya tidak bisa menyelesaikannya.
Jadi, apa cara yang baik untuk mendapatkan data dari # 3 ke # 1?
sumber
ProxyCommand
danssh -W
duassh
perintah dapat digabungkan menjadi satu baris perintah. Jika Anda memiliki versi terbaru dari klien OpenSSH ada argumen yang akan memungkinkan Anda melakukan semuanya dengan satussh
perintah.Anda juga dapat menggunakan kemampuan sesi Master versi SSH yang lebih baru. Dijelaskan di sini:
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing
Mungkin yang Anda butuhkan hanyalah mengedit / membuat .ssh / config Anda. Tambahkan definisi di sana yang mengontrol sesi Master:
Kemudian Anda dapat menentukan definisi server hop pertama Anda seperti:
Dan hop kedua akan menggunakan server hop pertama Anda sebagai proxy:
Jangan lupa untuk membuat direktori ~ / .ssh / cm_socket dan izin konfigurasi harus 644.
Maka Anda harus dapat SSH atau SCP langsung ke / dari server kedua Anda. Mungkin ada lebih banyak server yang dirantai seperti ini.
sumber
ControlMaster
diperlukan untuk ke proxy. Halaman yang lebih relevan di wikibook itu adalah ini: en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts