Di masa lalu, cara scp
kerja, ketika dipanggil (secara naif ) untuk menyalin file antara sistem jarak jauh, sangat merepotkan: jika Anda menulis, misalnya
scp user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
scp
pertama-tama akan membuka ssh
sesi di remote1, dan kemudian akan berjalan scp
dari sana ke remote2. Agar ini berfungsi, Anda harus menyiapkan kredensial otorisasi untuk remote2 pada remote1.
Sebaliknya, cara modern untuk melakukannya ("modern" karena diterapkan hanya beberapa tahun yang lalu, dan mungkin tidak semua orang memiliki -3
-mampu scp
) memerlukan dua langkah. Langkah pertama yang diperlukan adalah menggunakan ~/.ssh/config
untuk mengatur semua opsi untuk koneksi ke remote1 dan remote2, sebagai berikut:
Host remote1.example.org
Port 2222
IdentityFile /path/to/host1-id_rsa
Host remote2.example.org
Port 6969
IdentityFile /path/to/host2-id_rsa
Dengan cara ini menjadi mungkin untuk melewatkan semua opsi yang diperlukan ke perintah tanpa ambiguitas : misalnya, jika kita telah mengatakan pada CLI menggunakan port 2222 tanpa konfigurasi di atas, tidak akan jelas apakah kita merujuk ke remote1 atau ke remote2 , dan demikian juga untuk file yang berisi kunci cryptgraphic. Dengan cara ini CLI tetap rapi dan sederhana.
Kedua, gunakan -3
opsi, sebagai berikut:
scp -3 user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
The -3
pilihan menginstruksikan scp
untuk rute lalu lintas melalui PC yang perintah dikeluarkan, meskipun pihak ke-3 untuk transfer. Dengan cara ini, kredensial otorisasi harus berada hanya pada PC yang mengeluarkan, pihak ketiga.