Saat mentransfer file ke server Linux jarak jauh, Anda memiliki beberapa opsi. Salah satu cara terbaik adalah menggunakan program bernama Secure Copy, atau SCP, yang berjalan di atas protokol SSH untuk mentransfer file dengan cepat melalui jaringan Anda ke sistem jarak jauh. Tutorial ini menunjukkan cara mentransfer file dengan aman menggunakan SCP di Linux.
Konfigurasi SSH
Di server jauh Anda, Anda harus memasang server SSH. Yang paling umum di Linux adalah server OpenSSH. Untuk menginstalnya, jalankan salah satu dari perintah berikut:
# Server berbasis Debian/Ubuntu sudo tepat Install ssh  # Fedora sudo dnf instal openssh
Bergantung pada distro Anda, Anda mungkin perlu mengizinkan SSH melalui beberapa firewall perangkat lunak. Di Ubuntu, masalah ini tidak ada, tetapi di Fedora, Anda juga harus menjalankan perintah berikut:
sudo firewall-cmd –add-service = ssh –permanen sudo firewall-cmd –reload
Menghubungkan ke Sistem Anda melalui SSH
Sebelum Anda dapat terhubung melalui SSH, Anda perlu mengetahui alamat IP server jarak jauh. Pada server grafis, alamat IP ditampilkan di applet Jaringan di Pengaturan Sistem. Di sebagian besar server, Anda harus menggunakan perintah ip di terminal.
alamat ip
Di output, cari baris yang dimulai dengan inet di bawah ethX atau enpXsy , tergantung cara antarmuka jaringan Anda terhubung ke sistem. Dalam kasus saya, ini adalah 192.168.68.108.
Untuk menguji koneksi SSH, pindah ke mesin Linux lain dan ketik:
pengguna ssh @ remote.machine.ip.address
Ubah “pengguna” menjadi nama pengguna sebenarnya di server.
Masukkan kata sandi akun itu, dan Anda berbisnis. Jika Anda mendapat pertanyaan tentang “keaslian host tidak dapat ditentukan”, jawab saja “ya”. Ini adalah pemeriksaan keamanan yang dirancang untuk memastikan bahwa Anda terhubung ke server Anda yang sebenarnya dan bukan penipu. Anda akan melihat prompt yang sama muncul di sistem klien Anda yang Anda lihat saat masuk langsung ke server, yang berarti koneksi Anda berhasil. Anda juga harus mengonfigurasi koneksi SSH Anda untuk keamanan maksimum, atau bahkan menyiapkan autentikasi dua faktor, sebelum melanjutkan ke langkah berikutnya.
Menggunakan SCP untuk Mentransfer File
Sekarang setelah Anda menguji koneksi SSH, mulailah menyalin file di antara kedua mesin. Penyalinan aman dicapai dengan menggunakan perintah scp . Format dasar dari perintah scp adalah:
scp / PATH / KE / PENGGUNA FILE @ ALAMAT IP:PATH / KE / DIINGINKAN / TUJUAN
Misalnya, untuk menyalin file “backup.tar.gz” dari mesin lokal ke folder “backups” di direktori home user “ramces” di server jarak jauh dengan alamat IP 192.168.68.165, gunakan:
scp backup.tar.gz ramces @ 192.168.68.165:~ / backups /
Mirip dengan saat Anda terhubung menggunakan ssh , Anda akan dimintai kata sandi. Anda tidak akan dimintai nama pengguna, seperti yang ditentukan dalam perintah.
Anda juga dapat menggunakan kartu liar seperti berikut:
scp * .tar.gz ramces @ 192.168.68.165:~ / backup /
Untuk menyalin file dari server jarak jauh ke mesin lokal, cukup balikkan parameternya:
scp ramces @ 192.168.68.165:~ / backups / backup.tar.gz . /
Perhatikan titik di akhir perintah? Ini berarti “direktori saat ini”, seperti halnya dengan perintah cp atau mv standar . Anda dapat dengan mudah menentukan beberapa direktori lain jika Anda mau.
scp -r ramces @ 192.168.68.165:~ / backup / backup-dari-server /
Dan sama dengan kartu liar:
scp ramces @ 192.168.68.165:~ / backups /* .txz . /
Untuk menyalin direktori secara rekursif ke server jarak jauh, gunakan opsi -r :
scp -r backup / ramces @ 192.168.68.165:~ / backup /
Untuk menyalin salinan direktori rekursif dari server jarak jauh ke mesin lokal, gunakan:
scp -r ramces @ 192.168.68.165:~ / cadangan / . /
Mengompresi Transfer File di SCP
Selain dari penyalinan dasar, dimungkinkan juga untuk mengubah perilaku SCP selama transfer file ini. Misalnya, Anda dapat menggunakan flag -C untuk mengompres data yang dikirim SCP ke klien jarak jauh:
scp -C backup.tar.gz ramces @ 192.168.68.165: / home / ramces /
Opsi ini bekerja dengan mengompresi setiap paket data saat dikirim melalui program SCP. Dengan demikian, ini bisa sangat berguna jika Anda berada dalam koneksi terbatas bandwidth dan ingin mengirim file dengan andal ke server jarak jauh.
Mirip dengan opsi di atas, Anda juga dapat menggunakan -C bersama flag -r untuk mengompresi dan mentransfer file secara rekursif ke mesin jarak jauh. Misalnya, perintah berikut memampatkan dan mengambil file “backup.tar.gz†dari server jarak jauh saya:
scp -Cr ramces @ 192.168.68.165: / home / ramces / backup / home / ramces /
Mengoptimalkan Transfer Data dengan SCP
Sebagian besar, SCP mencoba menggunakan algoritme enkripsi AES-128 untuk semua transfer filenya. Namun, ada beberapa kasus di mana algoritme khusus ini tidak cocok untuk file yang ingin Anda transfer.
Mengetahui hal itu, dimungkinkan untuk lebih mengoptimalkan dan mengamankan SCP dengan langsung mengubah algoritme cipher untuk transfer tertentu. Untuk melakukan ini, Anda perlu menggunakan flag -c diikuti dengan cipher yang ingin Anda gunakan.
Misalnya, perintah berikut mentransfer file “backup.tar.gz†ke server jarak jauh saya menggunakan AES-256:
scp -c aes256-ctr . / backup.tar.gz ramces @ 192.168.68.165: / home / ramces /
Selanjutnya, opsi -c juga memungkinkan Anda untuk memberikan daftar sandi yang ingin Anda gunakan untuk transfer file tertentu. Misalnya, perintah berikut menggunakan AES-192 dan AES-256 saat mentransfer file “backup.tar.gz” ke server jarak jauh saya:
scp -c aes192-ctr,aes256-ctr . / backup.tar.gz ramces @ 192.168.68.165: / home / ramces /
Membatasi Penggunaan Bandwidth di SCP
Meskipun mengompresi paket file dapat membantu Anda menggunakan SCP dalam kondisi jaringan yang buruk, hal ini juga memungkinkan untuk membatasi bandwidth yang digunakan program selama transfer. Ini berguna jika Anda menggunakan koneksi terukur dan tidak ingin SCP mendominasi bandwidth jaringan Anda.
Untuk membatasi bandwidth efektif program, Anda perlu menggunakan flag -l diikuti dengan batas atas yang Anda inginkan dalam kilobit per detik (Kb/s). Misalnya, menjalankan perintah berikut akan mentransfer file “backup.tar.gz” ke server jarak jauh saya dengan bandwidth efektif 1.600 Kb/s:
scp -l 1600 . / backup.tar.gz ramces @ 192.168.68.165: / home / ramces /
Transfer Jarak Jauh ke Jarak Jauh dengan SCP
Selain menyalin file lokal ke server jarak jauh Anda dan sebaliknya, Anda juga dapat menggunakan SCP untuk mengelola beberapa server jarak jauh dari mesin lokal Anda, karena SCP hanya berurusan dengan transfer file dan tidak membedakan antara mesin lokal dan jarak jauh.
Untuk mentransfer antara dua server jarak jauh, Anda perlu menyebutkan nama pengguna dan alamat masing-masing mesin tersebut secara eksplisit. Misalnya, menjalankan perintah berikut akan mentransfer file “remote-backup.tar.gz†saya antara dua server jarak jauh saya:
scp ramces @ 192.168.68.108: / rumah / ramces / remote-backup.tar.gz ramces @ 192.168.68.165: / rumah / ramces /
Menggunakan Proxy dengan SCP
Secara default, SCP menggunakan alamat IP mesin lokal Anda setiap kali mentransfer file antara host yang berbeda. Meskipun ini baik-baik saja dalam situasi normal, ini bisa menjadi masalah jika jaringan lokal Anda membatasi aktivitas SCP apa pun. Salah satu cara cepat untuk mengatasi masalah ini adalah dengan melewatkan koneksi lokal Anda melalui proxy SSH.
Untuk melakukan ini, Anda perlu menggunakan flag -o diikuti dengan opsi ProxyCommand . Ini memungkinkan Anda membuat koneksi SSH dasar ke mesin baru yang, pada gilirannya, akan menjalankan perintah SCP Anda. Misalnya, menjalankan yang berikut ini akan membuat proksi SSH baru dengan mesin jarak jauh dan mentransfer file “backup.tar.gz” dengan menggunakannya:
scp -Hai “ProxyCommand ssh [email protected] nc %h %p” . / backup.tar.gz ramces @ 192.168.68.165: / home / ramces /
Mengubah Port Default di SCP
Selain membuat proxy SSH dasar, Anda juga dapat mengubah port default untuk SCP. Ini sangat membantu jika Anda mengamankan server Linux Anda dan tidak ingin mengekspos port default apa pun.
Untuk menggunakan SCP dengan port yang berbeda, Anda perlu menggunakan flag -P diikuti dengan nomor port yang ingin Anda gunakan. Misalnya, perintah berikut akan menyalin direktori “cadangan” saya secara rekursif dan terhubung ke server jarak jauh saya menggunakan port 2222:
scp -R -P 2222 . / ramces cadangan @ 192.168.68.165: / home / ramces /
Menggunakan Mode Diam SCP
Terakhir, juga dimungkinkan untuk sepenuhnya menghapus keluaran terminal apa pun dari perintah SCP. Ini sangat berguna jika Anda ingin membuat skrip non-interaktif yang akan berjalan di mesin Anda. Tidak hanya itu, tetapi Anda juga dapat mengotomatiskan proses ini sepenuhnya dengan membuat cronjob dan mentransfer kunci SSH pribadi ke server Anda.
Untuk membuat transfer SCP yang tenang, Anda perlu menggunakan flag -q . Misalnya, perintah berikut akan mentransfer file “backup.tar.gz” saya secara diam-diam ke server jauh saya:
scp -q . / backup.tar.gz ramces @ 192.168.68.165: / home / ramces /
Pertanyaan yang Sering Diajukan
Transfer jarak jauh ke jarak jauh saya di SCP tidak berfungsi. Bagaimana cara memperbaikinya?
Masalah ini kemungkinan besar disebabkan oleh port yang diblokir di salah satu file konfigurasi mesin jarak jauh Anda. Untuk memperbaiki masalah ini, pastikan port default untuk SSH terbuka di kedua mesin Anda.
Masalah ini juga dapat terjadi karena salah satu mesin jarak jauh Anda berada di belakang koneksi CG-NAT, sehingga koneksi luar apa pun ke mesin jarak jauh Anda tidak akan terselesaikan dengan baik. Untuk memperbaikinya, Anda perlu menggunakan program LAN Virtual, seperti Yggdrasil, yang memungkinkan Anda untuk menembus CG-NAT.
Saya menjalankan proxy SCP dan host jarak jauh menutup koneksi. Apa yang bisa saya lakukan?
Masalah ini kemungkinan besar disebabkan oleh masalah dengan mesin proxy Anda. Untuk memulai proxy SSH dengan benar, pastikan mesin yang ingin Anda gunakan memiliki server OpenSSH dan netcat. Untuk menginstal program ini di Ubuntu, jalankan perintah berikut: sudo apt install ssh netcat .
Apakah mungkin untuk mengetahui semua cipher yang tersedia untuk SCP?
Secara default, program SCP sangat bergantung pada protokol SSH untuk fungsi kriptografinya. Karena itu, Anda dapat menggunakan program SSH untuk mencetak daftar cipher yang dapat Anda gunakan bersama SCP. Misalnya, Anda dapat menjalankan sandi ssh -Q untuk mencetak daftar singkat semua sandi yang tersedia di mesin Anda.
Kredit gambar: Hapus percikan. Semua perubahan dan tangkapan layar oleh Ramces Red.