Cara Menggunakan Perintah SCP Untuk Memindahkan File

Memindahkan file secara aman sangatlah penting ketika menggunakan VPS. Untungnya proses transfer file ini bisa dilakukan secara mudah dengan menggunakan perintah SCP atau SCP command. Pada artikel ini, kami akan membahas kegunaan perintah SCP Linux.

Sebetulnya, apa saja perintah SCP? Berdasarkan Berkeley Software Distribution (BSD) Remote Copy Protocol (RCP), SCP (secure Copy) adalah sebuah file network transfer protocol yang mempermudah serta mengamankan proses transfer file antara remote dan local host.

Full-stack developer sering menggunakan perintah SCP untuk mengaktifkan fitur autentikasi dan enkripsi tanpa memerlukan layanan hosting pihak ketiga, seperti Github. Cara ini merupakan yang termudah untuk mengamankan data Anda dari tindakan packet sniffing, serta menjaga kerahasiaannya.

Pada dasarnya, SCP merupakan gabungan dari RCP dan SSH (secure Shell). SCP mengandalkan RCP untuk melakukan penyalinan file, dan SSH untuk mengenkripsi informasi dan mengautentikasi sistem remote.

Tidak seperti Rsync, untuk menggunakan perintah SCP, Anda hanya perlu membuat username dan password atau passphrase bagi sistem yang berperan dalam proses pemindahan file. Cara ini mempermudah proses pemindahan karena Anda tidak perlu login untuk melakukannya.

Contoh Syntax Perintah SCP Linux

Berikut contoh perintah SCP dasar:

scp [other options] [source username@IP]:/[directory and file name] [destination username@IP]:/[destination directory]

Perintah ini mungkin terlihat membingungkan, tapi dengan senang hati kami akan menjelaskannya untuk Anda!

Pada contoh di bawah ini, kami melakukan pemindahan file antara dua server VPS.

  • [other options] merupakan modifier yang dapat ditambahkan ke perintah SCP. Untuk modifier yang paling sering digunakan, akan kami bahas kemudian.
  • [source username@IP] merupakan username dan IP perangkat yang memuat file yang Anda inginkan. IPnya akan terlihat seperti: root@123.123.123.12
  • :/ mengirimkan informasi ke perintah SCP bahwa Anda akan menambahkan sesuatu pada source directory.
  • [directory and file name] merujuk pada lokasi penyimpanan dan nama file tersebut. Modifier ini akan terlihat seperti: /user/Edward/Desktop/SCP.png
  • [destination username@IP] adalah username dan IP dari perangkat yang dituju.
  • [destination directory] merupakan direktori tujuan di mana file tersebut akan disimpan.

Dalam skenario yang sebenarnya, tampilannya akan terlihat seperti berikut:

scp -p root@162.168.1.1:/media/scp.png edward@162.168.1.2:/desktop/destination

Cukup sederhana, kan? Jika menyalin ke, atau dari perangkat lokal, Anda tidak perlu menambahkan alamat IP dan destinasi atau source path seperti /desktop/folder_name.

Selanjutnya, kami akan membahas tentang opsi lain yang dapat Anda gunakan untuk memodifikasi perintah SCP. Ada 20 alternatif yang dapat Anda gunakan baik pada single character form (-o), maupun descriptive equivalent (-option). Opsi-opsi tersebut adalah:

  • -P port memungkinkan Anda untuk menetapkan entry yang berbeda pada server (Pada dasarnya, TCP port berada di port 22)
  • -c cipher memberikan Anda kemungkinan untuk menentukan algoritma enkripsi yang akan digunakan oleh klien. Beberapa value yang dapat Anda gunakan adalah ‘aes256-ctr’, ‘aes256-cbc’, ‘blowfish-cbc’, ‘arcfour’, ‘arcfour128’, arcfour256’, ‘cast128-cbc’, aes128-ctr’, ‘aes128-cbc’, ‘aes192-ctr’, ‘aes192-cbc’, and 3des-cbc’. Opsi default pada shell configuration adalah ‘AnnyStdCipher’.
  • -q akan menjalankan operasi dalam “mode senyap” , yang mana hanya critical error saja yang akan ditampilkan.
  • -r untuk melakukan proses recursive copying, di mana semua subdirectory akan dimasukkan.
  • -4 atau -6 digunakan jika Anda ingin memilih versi protokol, antara IPv4 atau IPv6. Anda juga dapat mengonfigurasi requirement alamat IP secara lebih lengkap dengan address-family keyword.
  • -p akan menyimpan file yang dimodifikasi dan waktu akses.
  • -u akan menghapus source file setelah proses pemindahan file selesai.
  • -c akan mengaktifkan kompresi data selagi proses transfer berlangsung.

Hal yang Perlu Diperhatikan

Karena SCP menggunakan enkripsi SSH, Anda akan memerlukan kata sandi SSH agar dapat memindahkan file. Terlebih lagi, Anda harus meminta izin (permission) untuk mengakses perangkat yang ingin disalin filenya dan membuat perintah akses pada perangkat yang dituju agar Anda dapat memindahkan filenya.

Untuk autentikasi dan konfigurasi koneksi, Anda harus membuat SSH key pada terminal dengan menggunakan command berikut:

ssh-keygen -t rsa

Anda dapat menyalin key ini ke sistem remote menggunakan command:

ssh-copy-id user@remote_machine

Setelah Anda mendapat autentikasi pada perangkat remote, public key akan tersalin dan proses transfer file siap dimulai.

Jika Anda tidak ingat root password salah satu sistem, Anda dapat memanfaatkan SSH client untuk memilih file di mana private identity key untuk konfirmasi RSA terbaca secara otomatis.

Untuk protokol versi 2, identity path default dari host key adalah ~/.ssh /id_dsa, sedangkan untuk protokol versi 1 adalah ~/.ssh /id_rsa. Setelah itu, cari di mana backup private key dan public key disimpan sehingga Anda dapat mengaplikasikan command SSH untuk menggunakan kedua key tersebut secara otomatis.

Untuk path /back-up/home/jack/.ssh, commandnya adalah:

ssh -i /back-up/home/user/.ssh/id_dsa user@yourserver.servername.domain

Pro tip: opsi ini memiliki value default –overwrite [yes], kecuali jika Anda memilih opsi –overwrite no atau –overwrite ask dalam perintah SCP, operasi ini akan menimpa file-file yang memiliki nama dan lokasi yang sama tanpa peringatan.

Jika Anda mentransfer file besar, kami sarankan untuk menggunakan sesi tmux atau menjalankan command pada layar yang berbeda. Selain itu, Anda juga harus menggunakan opsi –v untuk transfer file besar. Perintah tersebut akan memaksa SCP untuk menampilkan koneksi debug, otentikasi, atau masalah konfigurasi.

Menyalin File dengan Perintah SCP

Bagian terbaik dari SCP adalah kemampuannya dalam memberikan fleksibilitas untuk memindahkan file antara dua host, atau antara host dengan perangkat lokal. Di bawah ini merupakan ulasan bagaimana command-command digunakan untuk tiap proses pemindahan file.

Menyalin File Lokal ke Lokasi Remote

Kami akan menyalin file lokal scp.zip ke perangkat remote user bernama root. Username pada command diikuti oleh alamat IP server.

Contoh:

scp /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article

Jika Anda tidak mengaktifkan konfirmasi otomatis untuk SSH client, maka Anda harus memasukkan kata sandi dari user perangkat remote dan progress meter pun akan muncul. Progress meter akan terlihat seperti ini:

root@191.162.0.2’s password:
novel3.zip   100% 0 0.0KB/s 00:00

Tetapi katakanlah perangkat remote diatur untuk mematuhi koneksi SSH pada port selain dari port default 22. Dalam hal ini, Anda harus spesifikasikan port tersebut menggunakan opsi sebagai berikut:

scp -P 2322 /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article

Jika Anda juga ingin mengubah nama file saat prosesi transfer berlangsung, maka perintahnya akan terlihat seperti ini (jika port Anda bukan yang default, cukup tambahkan –P dan nomor port):

scp /users/Edward/desktop/scp.zip root@191.162.0.2:/writing/article/howtoscp.zip

Jika Anda ingin menyalin direktori yang memiliki lebih banyak file dan/atau subdirektori, gunakan baris perintah –r yang kami jelaskan sebelumnya.

scp -r /users/Edward/desktop root@191.162.0.2:/writing/article

Menyalin File Remote ke Perangkat Lokal

Pada proses ini, source dan target dari command scp di-reserve, dan harus direfleksikan pada syntax Anda . Kali ini, kami akan coba untuk menyalin scp.zip dari remote host yang sama ke perangkat lokal:

scp root@191.162.0.2:/writing/articles/SCP.zip Users/Edward/Desktop

Lagi, masukkan informasi SSH login yang sama kecuali fitur autentikasi dinonaktifkan oleh perintah sudo, atau Anda memaksakan SSH client untuk menggunakan private key di perangkat.

Memindahkan File Remote ke File Remote Lain

Untuk menyalin file dari satu remote host ke remote host yang lain, Anda harus memasukkan password untuk kedua akun host setelah command dijalankan di terminal.

Contoh:

scp root@191.162.0.2:/writing/article/scp.zip edward@11.10.0.1:/publishing

Command di atas menyalin source file /writing/article/scp.zip dari host pertama ke host kedua. Untuk menyalin folder, cukup tambahkan opsi -r dan spesifikasikan path folder, seperti yang telah dilakukan sebelumnya.

Dalam keadaan normal, file berpindah langsung dari remote host pertama ke remote host kedua. Namun, jika Anda ingin mengatur ulang rute operasi melalui perangkat, tambahkan opsi -3:

scp -3 root@191.162.0.2:/writing/article/scp.zip edward@11.10.0.1:/publishing

Selesai!

Kesimpulan

Pada artikel ini, Anda telah mempelajari cara mudah mentransfer file antara remote host dan local host dengan menggunakan SCP command. Pemindahan file dengan SCP command sangat berguna ketika Anda mengelola banyak server. Protokol penyalinan yang aman mempermudah Anda dalam menyalin informasi dari satu remote host ke remote host yang lain tanpa perlu login.

Terlebih lagi, cara transfer file remote ini mengenkripsi data dengan secure shell, yang akan memastikan kerahasiaan informasi saat proses transfer berlangsung.

Author
Penulis

Nadia Agatha

Nadia merupakan penerjemah lepas sejak 2016, kini ia menjadi penerjemah untuk Hostinger. Ia gemar membaca dan melakukan penelitian seputar penerjemahan dan sosiolinguistik. Disamping itu, ia juga suka bermain dengan kucingnya dan bercengkrama bersama teman-temannya di waktu senggang.