Belajar Aria2 - FTP & SFTP
Episode 7 of 23

Belajar Aria2 - FTP & SFTP

Pada episode ini kalian mengunduh file lewat FTP dan FTPS, memakai autentikasi user dan password, menangani download direktori, serta berpindah ke SFTP yang berjalan di atas SSH lengkap dengan verifikasi host key dan perbedaan perilakunya terhadap FTP.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 6 kalian sudah mengubah aria2 menjadi download manager batch lewat input file. Sekarang kita meluaskan medan tempur: bukan hanya HTTP/HTTPS, tetapi juga FTP dan SFTP. Di dunia nyata, banyak server file internal — mirror paket, server backup, atau penyimpanan data laboratorium — masih melayani FTP, dan hampir semua server Linux modern membuka akses file lewat SFTP. Menguasai keduanya membuat kalian bisa menarik data dari mana pun, tanpa menunggu tim lain menyediakan HTTP.

Satu hal yang perlu diluruskan sejak awal: FTP dan SFTP adalah protokol yang berbeda sama sekali. FTP berusia puluhan tahun dan tidak terenkripsi, sedangkan SFTP berjalan di atas SSH dan seluruh transfernya terenkripsi. Jangan menyebutnya satu keluarga — perbedaan itulah yang akan menentukan pilihan kalian di lapangan.

FTP Dasar: URL dan Autentikasi

aria2 memakai skema ftp:// untuk FTP biasa. Tanpa kredensial, aria2 mencoba login sebagai user anonymous — pola lama untuk mirror publik. Untuk server yang membutuhkan akun, gunakan --ftp-user dan --ftp-passwd.

download-ftp.sh
aria2c --ftp-user=deploy --ftp-passwd=gantiPassword \
  ftp://mirror.internal.example.com/pub/build-2026-08.iso

Kredensial juga bisa disisipkan langsung di URL dengan format ftp://user:pass@host/path. Ini ringkas, tetapi berbahaya: kredensial akan tampil di log proses dan riwayat shell. Lebih aman tetap menggunakan opsi, apalagi jika nanti dipindahkan ke file konfigurasi di episode 8.

Dua perilaku bawaan yang perlu diketahui:

  • Mode pasif aktif secara default (--ftp-pasv bernilai true). Server membuka koneksi data kedua untuk mengirim file. Cocok untuk mesin di belakang NAT/firewall — kalian tidak perlu membuka port inbound.
  • Transfer binary aktif secara default (--ftp-type=binary). Hanya ubah ke ascii jika server menuntutnya, misalnya untuk file teks lama yang menggunakan konvensi baris baru platform tertentu.

FTPS: Kebutuhan Enkripsi FTP

FTPS adalah FTP yang dibungkus TLS — sama seperti HTTPS terhadap HTTP. Kredensial dan data tidak lagi melintas dalam bentuk teks polos. Karena itulah server FTP modern hampir selalu menawarkan mode ini.

Warning

Sayangnya, aria2 tidak mendukung skema ftps://. Periksa daftar protokol resminya: HTTP(S), FTP, SFTP, BitTorrent, dan Metalink — FTPS tidak ada di daftar itu. Jika server kalian hanya melayani FTPS, aria2 bukan pilihannya; gunakan SFTP bila tersedia, atau tool lain seperti curl untuk kasus itu.

Ini contoh yang bagus bahwa membaca dokumentasi sebelum menulis script bisa menghemat jam debugging. Kebiasaan "coba saja ftps://" akan berakhir dengan error yang membingungkan.

Autentikasi Terpusat dengan netrc

Menulis --ftp-user dan --ftp-passwd di setiap perintah itu tidak praktis dan berisiko tercecer. aria2 mendukung file ~/.netrc untuk autentikasi FTP, SFTP, dan HTTP secara terpusat. Bisa dianggap seperti "brankas kredensial" per mesin.

plaintext
machine ftp.example.com
login deploy
password gantiPassword

File ini dibaca otomatis saat startup selama izinnya 600 — jika terlalu terbuka, aria2 menolak memakainya. Itu fitur keamanan yang bagus: file berisi password tidak boleh terbaca oleh pengguna lain.

set-permisi-netrc.sh
chmod 600 ~/.netrc
aria2c ftp://ftp.example.com/pub/file.tar.gz

Dengan netrc, perintah tetap pendek dan kredensial tersimpan di satu tempat.

Mengunduh Seluruh Direktori FTP

Kebutuhan umum berikutnya: menarik semua file dari satu direktori FTP. Perlu diingat, aria2 tidak punya mode rekursif seperti wget -r — ia mengunduh daftar URL yang diberikan, bukan menjelajah struktur direktori. Ini keputusan desain yang membuat aria2 tetap sederhana dan bisa diandalkan.

Solusinya tetap memanfaatkan kekuatan episode 6: bangun daftar URL, lalu serahkan ke input file. Listing direktori FTP bisa diperoleh dari klien apa pun yang tersedia, misalnya curl.

unduh-satu-direktori.sh
curl -u deploy:gantiPassword -s ftp://ftp.example.com/pub/dumps/ | \
  grep -oE '[^ ]+\.sql\.gz$' | \
  sed "s#^#ftp://ftp.example.com/pub/dumps/#" | \
  aria2c -i - -j 4

Output dari pipeline adalah satu baris URL per file, yang langsung dibaca aria2 dari stdin. Parser listing di atas bergantung pada format server FTP, jadi sesuaikan pola grep dan sed dengan struktur direktori kalian. Yang penting pola pikirnya: daftar URL adalah data, dan aria2 tinggal memakannya.

SFTP: Transfer Aman di Atas SSH

SFTP memakai skema sftp:// dan berjalan di atas koneksi SSH — biasanya port 22. Tidak ada dua channel seperti FTP; seluruh sesi, autentikasi, dan transfer berada dalam satu koneksi terenkripsi. Jika kalian sudah nyaman dengan SSH, konsep SFTP langsung terasa akrab.

download-sftp.sh
aria2c --ftp-user=deploy --ftp-passwd=gantiPassword \
  sftp://files.example.com/backups/db-2026-08-03.sql.gz

Kredensial untuk SFTP memakai opsi FTP yang sama — sesuai catatan manual aria2, mayoritas opsi FTP juga berlaku untuk SFTP. Jika port SSH bukan 22, tambahkan ke URL: sftp://deploy@files.example.com:2222/path.

Verifikasi Host Key

Identitas server SSH dijamin oleh host key. aria2 bisa memverifikasinya dengan --ssh-host-key-md, membandingkan sidik jari (fingerprint) SHA-1 kunci server dengan nilai yang kalian tetapkan. Ambil sidik jarinya lewat perintah SSH standar:

ambil-fingerprint.sh
ssh-keyscan -t rsa files.example.com | ssh-keygen -E sha1 -lf -

Outputnya mirip 2048 SHA1:b030503d4de4539dc7885e6f0f5e256704edf4c3 files.example.com (RSA). Hilangkan titik dua lalu berikan ke aria2 sebagai hex biasa:

verifikasi-host-key.sh
aria2c --ssh-host-key-md=sha-1=b030503d4de4539dc7885e6f0f5e256704edf4c3 \
  sftp://deploy@files.example.com/backups/db-2026-08-03.sql.gz

Important

Ingat perbedaan ini: --ssh-host-key-md memverifikasi kunci server. aria2 tidak mendukung autentikasi klien berbasis private key — ia hanya mengautentikasi dengan password. Server yang mengunci akses hanya lewat public key tidak bisa dipakai langsung oleh aria2; sediakan akun berpassword atau gunakan tool lain.

Perbedaan Perilaku FTP dan SFTP

Beberapa opsi FTP tidak berpengaruh pada SFTP, dan ini wajar karena protokolnya memang berbeda:

  • --ftp-pasv diabaikan. Konsep mode pasif/aktif tidak ada di SFTP; koneksi data tidak terpisah, jadi tidak ada masalah NAT.
  • --ftp-type diabaikan. Transfer SFTP selalu binary; tidak ada mode ascii.
  • Autentikasi berbeda. FTP bisa login anonim, SFTP selalu butuh akun; FTP bisa memakai mode pasif tanpa verifikasi apa pun, sedangkan SFTP melewati handshake SSH yang terenkripsi.
  • Resume tetap jalan. SFTP mendukung resume seperti FTP, jadi --continue dari episode 5 tetap berlaku.

Intinya: FTP cepat dan sederhana untuk mirror publik; SFTP adalah pilihan aman untuk data internal yang sensitif.

Penutup

Pada episode 7 ini kalian sudah mengunduh via FTP dengan --ftp-user dan --ftp-passwd, menyadari bahwa ftps:// tidak didukung aria2, memusatkan kredensial di ~/.netrc, menangani direktori FTP lewat input file, dan berpindah ke SFTP dengan verifikasi host key serta pemahaman perbedaan perilakunya terhadap FTP.

Yang paling penting untuk dibawa pulang: kenali protokol sebelum memilih tool. FTPS membutuhkan tool lain, dan SFTP mengorbankan beberapa opsi FTP demi enkripsi menyeluruh.

Di episode 8 berikutnya kita berhenti mengetik opsi berulang-ulang — semua pengaturan akan dipindahkan ke file konfigurasi aria2.conf agar setiap sesi download konsisten. Sampai jumpa!

Belajar Aria2 - FTP & SFTP | Belajar Aria2