Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Keamanan Linux

Menyalin File melalui SSH: Panduan Lengkap untuk SCP, rsync, dan SFTP

SSH (Secure Shell) adalah tulang punggung manajemen server jarak jauh yang aman. Baik Anda seorang developer yang menerapkan kode, sysadmin yang mengelola infrastruktur, atau pengguna power yang memelihara lingkungan VPS Hosting, mentransfer file dengan aman antar mesin adalah tugas yang akan Anda lakukan secara konstan.

Panduan komprehensif ini mencakup setiap metode utama untuk menyalin file melalui SSH — termasuk SCP, rsync, SFTP, dan otomasi berbasis kunci — dengan sintaks dunia nyata, contoh praktis, dan tips ahli untuk membantu Anda bekerja lebih cepat dan lebih aman.

Mengapa Menggunakan SSH untuk Transfer File?

disruptive

Sebelum mendalami alat-alatnya, ada baiknya memahami mengapa transfer file berbasis SSH adalah standar industri bagi administrator server dan pengembang.

  • Enkripsi end-to-end: Setiap byte data — termasuk kredensial, perintah, dan konten file — dienkripsi dalam transit menggunakan algoritma kriptografi modern. Ini membuat transfer SSH kebal terhadap packet sniffing dan serangan man-in-the-middle.
  • Tidak ada perangkat lunak tambahan yang diperlukan: SSH sudah terinstal sebelumnya di hampir setiap sistem Linux/Unix dan tersedia secara native di Windows 10+ dan macOS.
  • Keserbagunaan: Satu koneksi SSH dapat menangani sesi shell interaktif, transfer file, port forwarding, dan scripting otomatis.
  • Ramah otomasi: SSH terintegrasi dengan mulus dengan cron jobs, pipeline CI/CD, dan skrip backup, memungkinkan transfer file otomatis sepenuhnya tanpa kata sandi.
  • Keandalan: Koneksi SSH menangani gangguan jaringan dengan baik, terutama ketika dikombinasikan dengan alat seperti rsync.

Metode 1: Menyalin File dengan SCP (Secure Copy Protocol)

disruptive

SCP adalah alat paling sederhana dan paling banyak digunakan untuk transfer file sekali jalan melalui SSH. Ini bekerja dengan memanfaatkan koneksi SSH yang ada untuk menyalin file dengan aman antar host.

1) Sintaks SCP Dasar

scp [options] [source] [destination]

2) Unggah File dari Mesin Lokal ke Server Jarak Jauh

scp /path/to/local/file username@remote_host:/path/to/remote/destination

Penjelasan:

/path/to/local/filefile yang ingin Anda transfer di mesin lokal Anda
username@remote_hostnama pengguna SSH Anda dan nama host atau alamat IP server
/path/to/remote/destinationdirektori target atau jalur file di server jarak jauh

3) Unduh File dari Server Jarak Jauh ke Mesin Lokal

scp username@remote_host:/path/to/remote/file /path/to/local/destination

Cukup balikkan sumber dan tujuan untuk menarik file dari server ke mesin lokal Anda.

4) Salin Seluruh Direktori Secara Rekursif

scp -r /path/to/local/directory username@remote_host:/path/to/remote/destination

Flag -r memberitahu SCP untuk menyalin direktori dan semua isinya secara rekursif, termasuk subdirektori bersarang.

5) Opsi SCP yang Berguna

OpsiDeskripsi
-P [port]Tentukan port SSH khusus (catatan: huruf besar -P, tidak seperti huruf kecil SSH -p)
-CAktifkan kompresi untuk transfer lebih cepat melalui koneksi lambat
-i [identity_file]Gunakan kunci privat SSH tertentu untuk autentikasi
-l [limit]Batasi penggunaan bandwidth dalam Kbit/s
-qMode senyap — tekan output kemajuan
-vMode verbose — berguna untuk men-debug masalah koneksi

6) Kapan Menggunakan SCP

SCP ideal untuk transfer file sekali jalan yang cepat di mana kesederhanaan penting. Tidak memerlukan konfigurasi dan bekerja langsung di sistem apa pun dengan SSH terinstal. Namun, untuk direktori besar atau transfer berulang, rsync adalah pilihan yang jauh lebih baik.

Metode 2: Menyalin File dengan rsync

disruptive

rsync adalah pilihan profesional untuk sinkronisasi file dan transfer melalui SSH. Fitur unggulannya adalah delta transfer: alih-alih menyalin seluruh file, rsync menganalisis sumber dan tujuan serta mentransfer hanya bagian yang berubah. Ini menghemat waktu dan bandwidth dalam jumlah besar saat menangani file besar atau direktori yang diperbarui secara teratur.

1) Sintaks rsync Dasar

rsync [options] [source] [destination]

2) Unggah File dari Mesin Lokal ke Server Jarak Jauh

rsync -avz /path/to/local/file username@remote_host:/path/to/remote/destination

3) Sinkronkan Seluruh Direktori ke Server Jarak Jauh

rsync -avz /path/to/local/directory/ username@remote_host:/path/to/remote/destination/

Penting: Perhatikan garis miring di akhir / setelah direktori sumber. Dengan garis miring di akhir, rsync menyalin isi direktori. Tanpanya, rsync menyalin direktori itu sendiri sebagai subdirektori tujuan.

4) Cerminkan Direktori (Hapus File yang Dihapus dari Sumber)

rsync -avz --delete /path/to/local/directory/ username@remote_host:/path/to/remote/destination/

Bendera –delete memastikan bahwa file yang dihapus dari sumber juga dihapus dari tujuan, menjaga kedua lokasi tetap sempurna tersinkronisasi.

5) Gunakan Port SSH Kustom

rsync -avz -e "ssh -p 2222" /path/to/local/directory/ username@remote_host:/path/to/remote/destination/

6) Opsi rsync yang Berguna

OpsiDeskripsi
-aMode arsip: menyimpan izin, stempel waktu, tautan simbolis, dan kepemilikan
-vVerbose: menampilkan kemajuan file demi file selama transfer
-zKompresi: mengurangi data yang ditransfer melalui jaringan
–deleteMenghapus file di tujuan yang tidak lagi ada di sumber
–progressMenampilkan kemajuan real-time untuk setiap file
–excludeKecualikan file atau pola tertentu (misalnya, –exclude ‘*.log’)
-n atau –dry-runSimulasikan transfer tanpa benar-benar menyalin apa pun
-e “ssh -p [port]”Tentukan port SSH kustom
–bwlimit=[KB/s]Batasi kecepatan transfer untuk menghindari jenuh koneksi Anda

7) Kapan Menggunakan rsync

Gunakan rsync untuk cadangan, penyebaran, dan tugas sinkronisasi berulang apa pun. Ini sangat kuat saat mengelola basis kode besar, perpustakaan media, atau ekspor database di Dedicated Server di mana efisiensi bandwidth dan integritas data sangat penting.

Metode 3: Menyalin File Antara Dua Server Remote

disruptive

Kemampuan yang kurang dikenal tetapi sangat berguna dari SCP dan rsync adalah kemampuan untuk mentransfer file langsung antara dua server remote — tanpa merutekan data melalui mesin lokal Anda. Ini sangat berharga saat melakukan migrasi server atau menyinkronkan data antara instans cloud.

1) Salin File Antara Dua Server Remote dengan SCP

scp username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination

2) Salin File Antara Dua Server Remote dengan rsync

rsync -avz username1@remote_host1:/path/to/source/ username2@remote_host2:/path/to/destination/

Catatan: Agar transfer server-ke-server berfungsi, server sumber harus dapat membuat koneksi SSH ke server tujuan. Anda mungkin perlu mengonfigurasi kunci SSH di server sumber atau menggunakan SSH agent forwarding (ssh -A).

3) Transfer Server-ke-Server melalui SSH Tunneling (Metode Alternatif)

Jika SSH server-ke-server langsung tidak memungkinkan karena pembatasan firewall, Anda dapat menyalurkan transfer melalui mesin lokal menggunakan tar dan ssh:

ssh username1@remote_host1 "tar czf - /path/to/source" | ssh username2@remote_host2 "tar xzf - -C /path/to/destination"

Ini melakukan streaming arsip terkompresi dari server 1 langsung ke server 2 melalui sesi terminal lokal Anda.

Metode 4: Menyalin File dengan SFTP (SSH File Transfer Protocol)

disruptive

SFTP menyediakan pengalaman interaktif seperti FTP melalui koneksi SSH yang terenkripsi. Tidak seperti SCP, yang merupakan alat perintah tunggal, SFTP membuka sesi persisten di mana Anda dapat menjelajahi direktori, mengunggah, mengunduh, mengganti nama, dan menghapus file secara interaktif.

1) Memulai Sesi SFTP

sftp username@remote_host

Anda akan masuk ke prompt SFTP (sftp>), dari mana Anda dapat menjalankan perintah berikut:

2) Perintah SFTP Penting

PerintahDeskripsi
lsDaftar file di direktori remote saat ini
llsDaftar file di direktori lokal saat ini
cd /remote/pathUbah direktori remote
lcd /local/pathUbah direktori lokal
put /local/file /remote/destinationUnggah file ke server remote
get /remote/file /local/destinationUnduh file dari server remote
mput *.txtUnggah beberapa file yang cocok dengan pola
mget *.logUnduh beberapa file yang cocok dengan pola
mkdir /remote/newdirBuat direktori di server remote
rm /remote/fileHapus file di server remote
exit atau quitTutup sesi SFTP

3) Menghubungkan ke Port SSH Kustom melalui SFTP

sftp -P 2222 username@remote_host

4) Kapan Menggunakan SFTP

SFTP paling cocok untuk sesi manajemen file interaktif — misalnya, ketika Anda perlu menjelajahi struktur direktori remote, secara selektif mengunduh file log, atau mengunggah file konfigurasi ke server web. Banyak klien GUI (seperti FileZilla, Cyberduck, dan WinSCP) menggunakan SFTP sebagai protokol dasar mereka, membuatnya dapat diakses oleh pengguna non-teknis juga.

Metode 5: Mengotomatisasi Transfer File dengan Autentikasi Kunci SSH

disruptive

Memasukkan kata sandi secara manual untuk setiap transfer file tidak efisien dan tidak kompatibel dengan otomasi. Autentikasi berbasis kunci SSH mengatasi hal ini dengan memungkinkan login tanpa kata sandi yang aman secara kriptografi — prasyarat untuk alur kerja cadangan atau penerapan otomatis apa pun.

1) Buat Pasangan Kunci SSH

Pada mesin lokal Anda, jalankan:

ssh-keygen -t ed25519 -C "your_email@example.com"

Catatan: ed25519 adalah algoritma modern yang direkomendasikan. Gunakan -t rsa -b 4096 jika Anda memerlukan kompatibilitas dengan sistem yang lebih lama.

Ikuti petunjuk untuk menyimpan kunci (lokasi default: ~/.ssh/id_ed25519) dan secara opsional tetapkan frasa sandi untuk keamanan tambahan.

2) Salin Kunci Publik Anda ke Server Jarak Jauh

ssh-copy-id username@remote_host

Ini menambahkan kunci publik Anda ke file ~/.ssh/authorized_keys di server jarak jauh. Anda akan diminta untuk kata sandi Anda satu kali terakhir.

Jika ssh-copy-id tidak tersedia, Anda dapat melakukan ini secara manual:

cat ~/.ssh/id_ed25519.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

3) Uji Autentikasi Tanpa Kata Sandi

ssh username@remote_host

Jika Anda terhubung tanpa diminta kata sandi, autentikasi berbasis kunci berfungsi dengan benar.

4) Otomatisasi Transfer dengan Skrip Shell

Dengan SSH tanpa kata sandi yang dikonfigurasi, Anda sekarang dapat mengotomatisasi transfer file dalam pekerjaan cron atau skrip:

#!/bin/bash
# Daily backup script
rsync -avz --delete /var/www/html/ username@backup_server:/backups/www/

Tambahkan ini ke crontab Anda (crontab -e) untuk dijalankan setiap malam:

0 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Troubleshooting Common SSH File Transfer Issues

disruptive

Bahkan administrator berpengalaman menghadapi masalah. Berikut adalah masalah paling umum dan solusinya:

Permission Denied (publickey)

  • Verifikasi bahwa public key telah ditambahkan dengan benar ke ~/.ssh/authorized_keys di server remote
  • Periksa bahwa ~/.ssh memiliki izin 700 dan authorized_keys memiliki izin 600
  • Konfirmasi bahwa SSH daemon memungkinkan autentikasi kunci (PubkeyAuthentication yes di /etc/ssh/sshd_config)

Connection Refused

  • Verifikasi bahwa layanan SSH sedang berjalan: systemctl status sshd
  • Periksa bahwa port yang benar sedang digunakan
  • Tinjau aturan firewall: ufw status atau iptables -L

Transfer Speed Is Slow

  • Aktifkan kompresi: tambahkan -C ke SCP atau -z ke rsync
  • Gunakan cipher yang lebih cepat: ssh -c aes128-ctr (kurang aman tetapi lebih cepat pada tautan latensi tinggi)
  • Untuk transfer besar, pertimbangkan rsync dengan –bwlimit untuk menghindari saturasi jaringan Anda

Host Key Verification Failed

  • Fingerprint SSH server remote telah berubah (dapat menunjukkan masalah keamanan atau rebuild server)
  • Hapus kunci lama: ssh-keygen -R remote_host
  • Hubungkan kembali dan verifikasi fingerprint baru sebelum menerimanya

Memilih Alat yang Tepat: SCP vs. rsync vs. SFTP

disruptive

FiturSCPrsyncSFTP
Kemudahan penggunaan⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
Transfer delta
Sinkronisasi direktori✅ (rekursif)✅ (dengan –delete)✅ (manual)
Mode interaktif
Otomasi✅ (dengan skrip)
Efisiensi bandwidthRendahTinggiRendah
Terbaik untukTransfer sekali jalan cepatBackup & sinkronisasiPenjelajahan interaktif

Mengamankan Transfer File SSH Anda: Praktik Terbaik

disruptive

Terlepas dari alat mana yang Anda gunakan, ikuti praktik keamanan terbaik ini untuk melindungi server dan data Anda:

  1. Nonaktifkan autentikasi kata sandi — Gunakan kunci SSH secara eksklusif dan atur PasswordAuthentication no di /etc/ssh/sshd_config
  2. Ubah port SSH default — Pindah dari port 22 secara dramatis mengurangi upaya brute-force otomatis
  3. Gunakan fail2ban — Secara otomatis melarang IP yang berulang kali gagal autentikasi
  4. Batasi akses SSH berdasarkan IP — Gunakan aturan firewall atau direktif AllowUsers untuk membatasi siapa yang dapat terhubung
  5. Jaga SSH tetap diperbarui — Secara teratur perbarui OpenSSH untuk menambal kerentanan yang diketahui
  6. Gunakan algoritma kunci yang kuat — Lebih suka ed25519 atau rsa-4096 daripada algoritma yang lebih lama dan lebih lemah
  7. Amankan aplikasi web Anda — Pasangkan keamanan SSH dengan Sertifikat SSL untuk mengenkripsi semua lalu lintas ke layanan web Anda

Pertanyaan yang Sering Diajukan

disruptive

1) Apa perbedaan antara SCP dan SFTP?

SCP adalah alat baris perintah non-interaktif yang dirancang untuk transfer file cepat dengan satu perintah. SFTP adalah protokol interaktif yang memungkinkan Anda menjelajahi, mengelola, mengunggah, dan mengunduh file dalam antarmuka berbasis sesi. Keduanya menggunakan SSH untuk enkripsi.

2) Bisakah saya menggunakan rsync tanpa SSH?

Ya — rsync memiliki mode daemon sendiri yang beroperasi tanpa SSH, tetapi kurang aman. Untuk transfer apa pun yang menghadap internet, selalu gunakan rsync melalui SSH (rsync -e ssh).

3) Bagaimana cara mentransfer file jika server saya menggunakan port SSH non-standar?

Gunakan flag -P dengan SCP (scp -P 2222) atau opsi -e “ssh -p 2222” dengan rsync. Untuk SFTP, gunakan sftp -P 2222.

4) Apakah SCP sudah usang?

Pengembang OpenSSH telah mencatat bahwa protokol dasar SCP memiliki keterbatasan dan merekomendasikan penggunaan SFTP atau rsync untuk alur kerja baru. Namun, SCP tetap tersedia secara luas dan berfungsi di hampir semua sistem.

Kesimpulan

disruptive

Menguasai transfer file berbasis SSH adalah keterampilan penting bagi siapa pun yang mengelola server, menerapkan aplikasi, atau memelihara infrastruktur jarak jauh. Setiap alat memiliki tempatnya:

  • SCP adalah pilihan utama Anda untuk transfer cepat, sederhana, dan sekali jalan
  • rsync sangat diperlukan untuk backup, deployment, dan sinkronisasi efisien dari kumpulan data besar
  • SFTP unggul dalam sesi interaktif di mana Anda perlu menjelajahi dan mengelola file dengan cepat

Menggabungkan alat-alat ini dengan autentikasi kunci SSH dan praktik keamanan yang solid memberikan Anda alur kerja transfer file yang robust, otomatis, dan aman yang dapat diskalakan dari satu akun Shared Web Hosting hingga arsitektur multi-server kompleks di Dedicated Servers.

Jika Anda mencari lingkungan hosting yang andal dan berkinerja tinggi untuk mempraktikkan keterampilan ini, jelajahi paket VPS Hosting AlexHost — dirancang untuk pengembang dan sysadmin yang menuntut akses root penuh, penyimpanan SSD, dan konektivitas jaringan tingkat enterprise.