15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
28.10.2024

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 men-deploy kode, sysadmin yang mengelola infrastruktur, atau pengguna tingkat lanjut yang memelihara lingkungan VPS Hosting, mentransfer file dengan aman antar mesin adalah tugas yang akan Anda lakukan terus-menerus.

Panduan komprehensif ini mencakup setiap metode utama untuk menyalin file melalui SSH — termasuk SCP, rsync, SFTP, dan otomatisasi 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?

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

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

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

SCP adalah alat paling sederhana dan paling banyak digunakan untuk transfer file satu kali melalui SSH. Alat ini bekerja dengan memanfaatkan koneksi SSH yang sudah ada untuk menyalin file secara aman antar host.

Sintaks Dasar SCP

scp [options] [source] [destination]

Contoh 1: Mengunggah File dari Mesin Lokal ke Server Jarak Jauh

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

Penjelasan:

    /path/to/local/file — file yang ingin Anda transfer di mesin lokal
    username@remote_host — nama pengguna SSH dan hostname atau alamat IP server
    /path/to/remote/destination — direktori tujuan atau jalur file di server jarak jauh
    
    Contoh 2: Mengunduh 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 mengambil file dari server ke mesin lokal Anda.
    Contoh 3: Menyalin 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 yang bersarang.
    Opsi SCP yang Berguna
    
    
    
    
    Opsi
    Deskripsi
    
    
    
    
    -P [port]
    Tentukan port SSH kustom (perhatikan: huruf besar -P, tidak seperti huruf kecil -p pada SSH)
    
    
    -C
    Aktifkan kompresi untuk transfer lebih cepat pada koneksi lambat
    
    
    -i [identity_file]
    Gunakan kunci privat SSH tertentu untuk autentikasi
    
    
    -l [limit]
    Batasi penggunaan bandwidth dalam Kbit/s
    
    
    -q
    Mode senyap — sembunyikan output progres
    
    
    -v
    Mode verbose — berguna untuk men-debug masalah koneksi
    
    
    
    
    Kapan Menggunakan SCP
    SCP ideal untuk transfer file cepat satu kali di mana kesederhanaan menjadi prioritas. Tidak memerlukan konfigurasi dan langsung berfungsi di sistem mana pun yang terinstal SSH. Namun, untuk direktori besar atau transfer berulang, rsync adalah pilihan yang jauh lebih baik.
    Metode 2: Menyalin File dengan rsync
    rsync adalah pilihan profesional untuk sinkronisasi dan transfer file melalui SSH. Fitur unggulannya adalah delta transfer: alih-alih menyalin seluruh file, rsync menganalisis sumber dan tujuan lalu hanya mentransfer bagian yang berubah. Ini menghemat waktu dan bandwidth yang sangat besar saat menangani file atau direktori besar yang sering diperbarui.
    Sintaks Dasar rsync
    rsync [options] [source] [destination]
    Contoh 1: Mengunggah File dari Mesin Lokal ke Server Jarak Jauh
    rsync -avz /path/to/local/file username@remote_host:/path/to/remote/destination
    Contoh 2: Sinkronisasi Seluruh Direktori ke Server Jarak Jauh
    rsync -avz /path/to/local/directory/ username@remote_host:/path/to/remote/destination/
    > Penting: Perhatikan trailing slash / setelah direktori sumber. Dengan trailing slash, rsync menyalin *isi* direktori. Tanpanya, rsync menyalin direktori itu sendiri sebagai subdirektori dari tujuan.
    Contoh 3: Mencerminkan Direktori (Hapus File yang Dihapus dari Sumber)
    rsync -avz --delete /path/to/local/directory/ username@remote_host:/path/to/remote/destination/
    Flag --delete memastikan bahwa file yang dihapus dari sumber juga dihapus dari tujuan, menjaga kedua lokasi tetap sinkron sempurna.
    Contoh 4: Menggunakan Port SSH Kustom
    rsync -avz -e "ssh -p 2222" /path/to/local/directory/ username@remote_host:/path/to/remote/destination/
    Opsi rsync yang Berguna
    
    
    
    
    Opsi
    Deskripsi
    
    
    
    
    -a
    Mode arsip: mempertahankan izin, timestamp, symbolic link, dan kepemilikan
    
    
    -v
    Verbose: menampilkan progres file per file selama transfer
    
    
    -z
    Kompresi: mengurangi data yang ditransfer melalui jaringan
    
    
    --delete
    Menghapus file di tujuan yang sudah tidak ada di sumber
    
    
    --progress
    Menampilkan progres real-time untuk setiap file
    
    
    --exclude
    Kecualikan file atau pola tertentu (mis., --exclude '*.log')
    
    
    -n atau --dry-run
    Simulasikan transfer tanpa benar-benar menyalin apa pun
    
    
    -e "ssh -p [port]"
    Tentukan port SSH kustom
    
    
    --bwlimit=[KB/s]
    Batasi kecepatan transfer agar koneksi tidak jenuh
    
    
    
    
    Kapan Menggunakan rsync
    Gunakan rsync untuk backup, deployment, dan tugas sinkronisasi berulang apa pun. Sangat powerful saat mengelola basis kode besar, pustaka media, atau ekspor database di Dedicated Server di mana efisiensi bandwidth dan integritas data sangat penting.
    Metode 3: Menyalin File Antara Dua Server Jarak Jauh
    Kemampuan yang kurang dikenal namun sangat berguna dari SCP dan rsync adalah kemampuan untuk mentransfer file langsung antara dua server jarak jauh — tanpa merutekan data melalui mesin lokal Anda. Ini sangat berharga saat migrasi server atau menyinkronkan data antar instance cloud.
    Menyalin File Antara Dua Server Jarak Jauh dengan SCP
    scp username1@remote_host1:/path/to/file username2@remote_host2:/path/to/destination
    Menyalin File Antara Dua Server Jarak Jauh 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).
    Transfer Server-ke-Server melalui SSH Tunneling (Metode Alternatif)
    Jika SSH langsung server-ke-server 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 mengalirkan arsip terkompresi dari server 1 langsung ke server 2 melalui sesi terminal lokal Anda.
    Metode 4: Menyalin File dengan SFTP (SSH File Transfer Protocol)
    SFTP menyediakan pengalaman interaktif seperti FTP melalui koneksi SSH yang terenkripsi. Tidak seperti SCP yang merupakan alat satu perintah, SFTP membuka sesi persisten di mana Anda dapat menelusuri direktori, mengunggah, mengunduh, mengganti nama, dan menghapus file secara interaktif.
    Memulai Sesi SFTP
    sftp username@remote_host
    Anda akan masuk ke prompt SFTP (sftp>), dari mana Anda dapat menjalankan perintah berikut:
    Perintah SFTP Penting
    
    
    
    
    Perintah
    Deskripsi
    
    
    
    
    ls
    Tampilkan daftar file di direktori jarak jauh saat ini
    
    
    lls
    Tampilkan daftar file di direktori lokal saat ini
    
    
    cd /remote/path
    Ubah direktori jarak jauh
    
    
    lcd /local/path
    Ubah direktori lokal
    
    
    put /local/file /remote/destination
    Unggah file ke server jarak jauh
    
    
    get /remote/file /local/destination
    Unduh file dari server jarak jauh
    
    
    mput *.txt
    Unggah beberapa file yang cocok dengan pola tertentu
    
    
    mget *.log
    Unduh beberapa file yang cocok dengan pola tertentu
    
    
    mkdir /remote/newdir
    Buat direktori di server jarak jauh
    
    
    rm /remote/file
    Hapus file di server jarak jauh
    
    
    exit atau quit
    Tutup sesi SFTP
    
    
    
    
    Menghubungkan ke Port SSH Kustom melalui SFTP
    sftp -P 2222 username@remote_host
    Kapan Menggunakan SFTP
    SFTP paling cocok untuk sesi manajemen file interaktif — misalnya, saat Anda perlu menelusuri struktur direktori jarak jauh, mengunduh file log secara selektif, atau mengunggah file konfigurasi ke web server. Banyak klien GUI (seperti FileZilla, Cyberduck, dan WinSCP) menggunakan SFTP sebagai protokol dasarnya, sehingga dapat diakses oleh pengguna non-teknis juga.
    Metode 5: Mengotomatiskan Transfer File dengan Autentikasi Kunci SSH
    Memasukkan kata sandi secara manual untuk setiap transfer file tidak efisien dan tidak kompatibel dengan otomatisasi. Autentikasi berbasis kunci SSH mengatasi hal ini dengan memungkinkan login tanpa kata sandi yang aman secara kriptografis — prasyarat untuk alur kerja backup atau deployment otomatis apa pun.
    Langkah 1: Buat Pasangan Kunci SSH
    Di 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 passphrase untuk keamanan tambahan.
    Langkah 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 memasukkan kata sandi untuk terakhir kalinya.
    Jika ssh-copy-id tidak tersedia, Anda dapat melakukannya secara manual:
    cat ~/.ssh/id_ed25519.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    Langkah 3: Uji Autentikasi Tanpa Kata Sandi
    ssh username@remote_host
    Jika Anda terhubung tanpa diminta kata sandi, autentikasi berbasis kunci berfungsi dengan benar.
    Langkah 4: Otomatiskan Transfer dengan Shell Script
    Dengan SSH tanpa kata sandi yang dikonfigurasi, Anda sekarang dapat mengotomatiskan transfer file dalam cron job 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
    Pemecahan Masalah Umum Transfer File SSH
    Bahkan administrator berpengalaman pun menghadapi masalah. Berikut adalah masalah paling umum beserta solusinya:
    Permission Denied (publickey)
    
    Verifikasi bahwa kunci publik telah ditambahkan dengan benar ke ~/.ssh/authorized_keys di server jarak jauh
    Periksa bahwa ~/.ssh memiliki izin 700 dan authorized_keys memiliki izin 600
  • Konfirmasi bahwa daemon SSH mengizinkan 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

    Kecepatan Transfer Lambat

    • 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 kejenuhan jaringan

    Host Key Verification Failed

    • Sidik jari SSH server jarak jauh telah berubah (bisa mengindikasikan masalah keamanan atau pembangunan ulang server)
    • Hapus kunci lama: ssh-keygen -R remote_host
    • Hubungkan kembali dan verifikasi sidik jari baru sebelum menerimanya

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

    FiturSCPrsyncSFTP
    Kemudahan penggunaan⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
    Delta transfer
    Sinkronisasi direktori✅ (rekursif)✅ (dengan --delete)✅ (manual)
    Mode interaktif
    Otomatisasi✅ (dengan skrip)
    Efisiensi bandwidthRendahTinggiRendah
    Terbaik untukTransfer satu kali yang cepatBackup & sinkronisasiPenelusuran interaktif

    Mengamankan Transfer File SSH: Praktik Terbaik

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

    1. Nonaktifkan autentikasi kata sandi — Gunakan kunci SSH secara eksklusif dan tetapkan PasswordAuthentication no di /etc/ssh/sshd_config
    2. Ubah port SSH default — Berpindah dari port 22 secara dramatis mengurangi upaya brute-force otomatis
    3. Gunakan fail2ban — Secara otomatis memblokir 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. Perbarui SSH secara rutin — Perbarui OpenSSH secara berkala untuk menambal kerentanan yang diketahui
    6. Gunakan algoritma kunci yang kuat — Lebih pilih ed25519 atau rsa-4096 daripada algoritma lama yang lebih lemah
    7. Amankan aplikasi web Anda — Padukan keamanan SSH dengan SSL Certificate untuk mengenkripsi semua lalu lintas ke layanan web Anda

    Pertanyaan yang Sering Diajukan

    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 menelusuri, mengelola, mengunggah, dan mengunduh file dalam antarmuka berbasis sesi. Keduanya menggunakan SSH untuk enkripsi.

    Bisakah saya menggunakan rsync tanpa SSH?

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

    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.

    Apakah SCP sudah usang?

    Developer 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

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

    • SCP adalah pilihan utama untuk transfer cepat, sederhana, dan satu kali
    • rsync sangat diperlukan untuk backup, deployment, dan sinkronisasi efisien kumpulan data besar
    • SFTP unggul dalam sesi interaktif di mana Anda perlu menelusuri dan mengelola file secara langsung

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

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

    15%

    Hemat 15% di Semua Layanan Hosting

    Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

    Gunakan kode:

    Skills
    Memulai