Setiap kali Anda mengunggah file website ke server, ada satu pertanyaan yang jarang terpikirkan: siapa saja yang bisa membaca file itu di tengah perjalanan? Selama puluhan tahun, jawabannya cukup mengkhawatirkan. Protokol transfer file paling klasik, yaitu FTP, mengirimkan username, password, dan isi file dalam bentuk teks polos. Siapa pun yang mampu menyadap lalu lintas jaringan di antara komputer Anda dan server dapat membacanya tanpa kesulitan.
SFTP adalah jawaban atas persoalan itu. Protokol ini memindahkan file antara komputer dan server melalui koneksi yang seluruhnya terenkripsi, sehingga baik perintah maupun isi file tidak dapat dibaca penyadap. Namun ada satu hal tentang SFTP yang keliru dipahami banyak orang, bahkan oleh sebagian dokumentasi vendor besar. Kekeliruan itu menyangkut cara kerja protokolnya, bukan sekadar istilah.
SFTP Adalah Apa? Meluruskan Kepanjangannya
SFTP adalah protokol jaringan untuk mentransfer, mengakses, dan mengelola file di server jarak jauh melalui koneksi terenkripsi. Protokol di sini berarti sekumpulan aturan baku yang disepakati kedua belah pihak, sehingga komputer pengirim dan penerima sama-sama memahami bagaimana proses transfer berlangsung.
Kepanjangan SFTP adalah SSH File Transfer Protocol. Perhatikan huruf pertamanya: S berasal dari SSH, bukan dari "Secure". Inilah yang sering keliru. Banyak sumber, termasuk sebagian dokumentasi vendor besar, menulis kepanjangan SFTP sebagai "Secure File Transfer Protocol" atau menyebutnya "Secure FTP". Sementara itu, seluruh dokumen spesifikasi resmi di IETF — badan yang menstandarkan protokol internet — konsisten memakai judul SSH File Transfer Protocol.
Kekeliruan nama ini terdengar sepele, tetapi akibatnya nyata. Sebutan "Secure FTP" menyiratkan bahwa SFTP adalah FTP yang diberi lapisan pengaman, seolah-olah keduanya bersaudara. Kenyataannya tidak demikian, dan perbedaan itulah yang akan kita bahas berikutnya.
Singkatan "SFTP" punya makna lain di luar konteks ini. Dalam dunia kabel jaringan, S/FTP merujuk pada Shielded Foiled Twisted Pair, yaitu jenis kabel LAN berpelindung ganda. Ada pula gelar akademik S.STP (Sarjana Sains Terapan Pemerintahan) yang kerap tertukar penulisannya. Artikel ini membahas SFTP dalam konteks protokol jaringan.
Kenapa SFTP Bukan "FTP Versi Aman"
Bayangkan dua kota yang dihubungkan dua jalur. Jalur pertama adalah jalan lama yang kemudian dipagari dan diberi penerangan. Jalur kedua adalah terowongan yang dibangun dari awal dengan rancangan berbeda. Keduanya mengantar Anda ke tujuan yang sama, tetapi keliru menyebut terowongan itu "jalan lama versi aman".
FTPS adalah jalan lama yang dipagari. Ia benar-benar FTP, dengan seluruh arsitektur aslinya, yang kemudian dibungkus enkripsi TLS — teknologi yang sama dengan pengaman situs HTTPS dan sertifikat SSL.
SFTP adalah terowongan yang berbeda itu. Ia tidak berbagi kode, tidak berbagi perintah, dan tidak berbagi garis rancangan dengan FTP. SFTP lahir sebagai subsystem (bagian layanan tambahan) dari SSH, protokol yang biasa Anda pakai untuk mengendalikan server dari jarak jauh lewat baris perintah. Ketika Anda memakai SFTP, sesungguhnya Anda sedang membuka sesi SSH, lalu meminta SSH menjalankan layanan transfer file di dalamnya.
Konsekuensinya besar. Semua kekuatan SSH — enkripsi menyeluruh, autentikasi berbasis kunci, koneksi tunggal — otomatis diwarisi SFTP. Begitu pula batasannya: kalau server tidak mengaktifkan SSH, tidak ada SFTP di sana.
Cara Kerja SFTP: Satu Koneksi, Satu Port
Perbedaan paling praktis antara FTP dan SFTP terletak pada jumlah jalur koneksi.
FTP memakai dua jalur terpisah: satu jalur di port 21 untuk perintah dan balasan, satu lagi di port 20 untuk isi file. Port sendiri adalah nomor pintu logis pada server, penanda layanan mana yang dituju sebuah koneksi. Pemisahan ini membuat FTP kerap tersangkut firewall (penyaring lalu lintas jaringan), karena jalur datanya dibuka secara dinamis dan sulit diprediksi.
SFTP memakai satu koneksi tunggal di port 22, port yang sama dengan SSH. Perintah dan isi file mengalir bersamaan melalui koneksi terenkripsi yang sama. Dari sudut pandang firewall, hanya ada satu pintu yang perlu dibuka, dan itu pintu yang memang sudah biasa terbuka untuk SSH.
Berikut alur sebuah sesi SFTP dari awal hingga selesai:
Alur koneksi SFTP dalam tiga tahap: koneksi dan enkripsi, autentikasi, lalu sesi SFTP.
Ada perbedaan teknis lain. FTP berkomunikasi dengan perintah berbentuk teks, mirip percakapan tertulis. SFTP berkomunikasi dengan paket biner — data terstruktur yang langsung dipahami mesin tanpa perlu diurai sebagai teks. Cara ini lebih hemat beban prosesor, meski efeknya baru terasa pada transfer berskala besar.
SFTP Server dan SFTP Client
Seperti FTP, SFTP bekerja dengan model client–server: satu pihak menyimpan dan melayani file, satu pihak meminta atau mengirimnya.
SFTP server bukan program terpisah yang perlu Anda pasang. Ia sudah menyatu dengan layanan SSH yang berjalan di server. Pengaturannya ada di berkas konfigurasi sshd_config, pada baris yang diawali Subsystem sftp. Tersedia dua pilihan: sftp-server menjalankan proses terpisah untuk setiap sesi, sedangkan internal-sftp menjalankan layanan langsung di dalam program SSH server. Pilihan kedua lebih hemat sumber daya dan memudahkan pengurungan pengguna ke folder tertentu. Karena itulah, begitu SSH aktif, SFTP ikut aktif tanpa pemasangan tambahan.
SFTP client adalah perangkat lunak di sisi Anda yang menerjemahkan keinginan "kirim file ini" menjadi paket yang dipahami server. Client dapat berupa aplikasi bertampilan grafis maupun perintah sftp di terminal. Pilihannya kita bahas di bagian cara menggunakan.
SFTP vs FTPS vs FTP over SSH
Tiga istilah ini paling sering tertukar. Berikut pembedanya:
| Aspek | SFTP | FTPS | FTP over SSH |
|---|---|---|---|
| Dasar protokol | Subsystem SSH, protokol tersendiri | FTP klasik + lapisan TLS | FTP klasik, jalur perintah ditumpangkan ke SSH |
| Enkripsi | SSH | TLS dengan sertifikat X.509 | SSH, hanya untuk jalur perintah |
| Port | Satu, yaitu 22 | Perintah 21, data 989/990 dan port dinamis | Terowongan SSH ditambah jalur data FTP terpisah |
| Perilaku di firewall | Mudah dilewatkan | Merepotkan | Sangat merepotkan |
| Autentikasi | Password atau SSH key | Sertifikat dan username-password | SSH untuk terowongan, lalu login FTP |
FTP over SSH perlu penjelasan tambahan karena namanya paling menyesatkan. Teknik lama ini menumpangkan jalur perintah FTP ke dalam terowongan SSH. Masalahnya, FTP membuka jalur data terpisah yang tidak ikut masuk terowongan secara otomatis. Hasilnya, sebagian lalu lintas tetap tidak terenkripsi. Teknik ini sudah ditinggalkan dan sebaiknya tidak Anda pakai.
Diagram perbandingan SFTP, FTPS, dan FTP over SSH: jumlah koneksi, port, dan cakupan enkripsi.
Protokol Populer yang Tak Pernah Menjadi Standar Resmi
Ada fakta mengejutkan tentang SFTP. Meski dipakai di seluruh dunia selama lebih dari dua dekade, protokol ini tidak pernah menjadi standar resmi.
Spesifikasinya ditulis sebagai serangkaian dokumen rancangan (Internet-Draft) di IETF dengan nama draft-ietf-secsh-filexfer, dari nomor 00 sampai 13. Dokumen rancangan bersifat sementara dan punya masa berlaku. Semua draft SFTP kedaluwarsa tanpa pernah naik status menjadi RFC, yaitu dokumen standar resmi internet. Datatracker IETF sampai hari ini menandai draft terakhirnya sebagai dokumen yang kedaluwarsa dan tidak memiliki kedudukan formal dalam proses standardisasi.
Versi protokol yang dipakai dunia nyata pun adalah versi 3, yang dispesifikasikan pada Oktober 2001 oleh Tatu Ylönen dan Sami Lehtinen. Versi 6 sebenarnya sudah dirancang pada Juli 2006 oleh Joseph Galbraith dan Oskari Saarenmaa, lengkap dengan fitur penguncian file dan kuota. Namun OpenSSH — implementasi SSH yang menopang mayoritas server Linux di dunia — memilih bertahan di versi 3 dan tidak berniat mengadopsi versi setelahnya. Artinya, SFTP yang Anda pakai hari ini menjalankan rancangan berusia lebih dari dua puluh tahun.
Akarnya adalah SSH itu sendiri, yang dibuat Tatu Ylönen pada 1995 setelah jaringan kampusnya di Finlandia terkena penyadapan kata sandi. Ia pula yang meminta alokasi port 22 kepada IANA.
Hubungan SFTP dengan Perintah SCP
Kalau Anda pernah menyalin file ke server lewat terminal, kemungkinan besar Anda memakai perintah scp (Secure Copy Protocol). Selama bertahun-tahun, scp menjalankan protokolnya sendiri yang diwarisi dari perintah rcp era 1980-an.
Protokol lama itu punya kelemahan serius: ia menyerahkan penerjemahan karakter khusus seperti tanda bintang kepada shell di sisi server. Celah ini memungkinkan nama file yang dirancang jahat memicu perintah yang tidak diinginkan.
Pada rilis OpenSSH 9.0 tanggal 8 April 2022, pengembangnya mengambil keputusan penting: perintah scp kini memakai protokol SFTP secara bawaan, meninggalkan protokol scp/rcp lama. Jadi ketika Anda mengetik scp di terminal versi modern, yang sesungguhnya berbicara di balik layar adalah SFTP. Bagi yang masih membutuhkan perilaku lama, tersedia flag -O (huruf O kapital).
Perubahan ini membawa konsekuensi menarik. SFTP menuntut konfirmasi untuk setiap paket, sedangkan protokol scp lama tidak. Akibatnya, menyalin satu berkas besar bisa terasa sedikit lebih lambat — harga yang sepadan dengan keamanan yang didapat.
Kelebihan SFTP
- Satu koneksi yang ramah firewall: Seluruh komunikasi melewati port 22. Anda tidak perlu membuka rentang port tambahan seperti pada FTP atau FTPS, dan koneksi jarang tersangkut router rumahan.
- Enkripsi menyeluruh sejak awal: Perintah, nama file, kredensial, dan isi file semuanya terenkripsi. Tidak ada bagian percakapan yang berjalan telanjang.
- Autentikasi berbasis kunci: SFTP mewarisi dukungan SSH key, metode masuk yang jauh lebih tahan terhadap penebakan kata sandi dibanding password biasa.
- Komunikasi paket biner: Perintah dikirim sebagai data terstruktur, bukan teks yang harus diurai, sehingga lebih ringan bagi prosesor server.
- Bukan sekadar mengirim file: Anda dapat membuat folder, mengganti nama, menghapus, dan mengubah izin akses langsung dari sesi yang sama.
Kelemahan dan Hal yang Perlu Anda Pertimbangkan
SFTP juga punya sisi yang kurang menguntungkan.
- Enkripsi menambah beban prosesor: Setiap paket harus dienkripsi dan didekripsi. Pada koneksi yang sangat cepat, kemampuan prosesor justru bisa menjadi penghambat sebelum bandwidth habis terpakai.
- Lebih lambat dibanding FTP polos: Selain karena enkripsi, SFTP menunggu konfirmasi untuk setiap paket. Perbedaan ini tidak terasa pada file website biasa, tetapi nyata pada transfer puluhan gigabyte.
- Kurang efisien untuk ribuan file kecil: Setiap file membutuhkan beberapa kali percakapan bolak-balik. Ketika file berjumlah ribuan, waktu perjalanan data mendominasi, bukan kecepatan koneksi. Mengarsipkan folder menjadi satu file
.tar.gzsebelum mengirim biasanya jauh lebih cepat. - Tidak ada mode teks otomatis: Berbeda dari FTP yang mengenal mode ASCII, SFTP memperlakukan semua file sebagai biner. Perbedaan akhir baris antara Windows dan Linux harus Anda tangani sendiri.
- Kemampuan melanjutkan transfer tidak seragam: Ketika koneksi terputus, tidak semua kombinasi client dan server mampu meneruskan dari titik terakhir.
- Tidak selalu tersedia di hosting bersama: SFTP membutuhkan akses SSH yang aktif, sedangkan sebagian paket hosting murah hanya menyediakan FTP. Bila Anda membutuhkan kendali penuh, VPS Indonesia memberi akses root sehingga SFTP aktif secara bawaan. Pertimbangan memilihnya dibahas khusus di artikel VPS adalah.
Cara Menggunakan SFTP
Ada dua jalan: lewat terminal, atau lewat aplikasi dengan tampilan grafis.
Lewat Terminal
Untuk memulai sesi, sebutkan nama pengguna dan alamat server. Alamat ini bisa berupa nama host maupun IP address server Anda.
sftp pengguna@103.10.20.30Bila server Anda memakai port selain 22, atau Anda masuk memakai kunci, gunakan flag berikut:
sftp -P 2222 -i ~/.ssh/id_ed25519 pengguna@103.10.20.30Perhatikan bahwa flag port pada sftp ditulis -P dengan huruf kapital. Ini berbeda dari perintah ssh yang memakai -p huruf kecil, dan menjadi sumber kebingungan yang sering muncul.
Setelah masuk, Anda akan melihat prompt sftp>. Berikut perintah yang paling sering dipakai:
ls # menampilkan isi folder di server
cd public_html # berpindah folder di server
lcd ~/Documents # berpindah folder di komputer Anda
pwd # menampilkan lokasi folder aktif di server
put situs.zip # mengunggah file dari komputer ke server
get backup.sql # mengunduh file dari server ke komputer
mkdir arsip # membuat folder baru di server
bye # mengakhiri sesiKunci untuk mengingatnya sederhana: perintah yang diawali huruf l bekerja di komputer lokal Anda, sisanya bekerja di server.
Perintah SFTP: lcd bekerja di komputer lokal, cd ls pwd mkdir di server, put unggah, get unduh. Perintah get dan put inilah yang membuat SFTP cocok sebagai bagian dari rutinitas backup file situs.
Lewat Aplikasi
Bagi yang lebih nyaman dengan tampilan grafis, tersedia beberapa pilihan:
- FileZilla: gratis dan berjalan di Windows, macOS, maupun Linux. Pilih protokol SFTP saat membuat koneksi, lalu isi port 22.
- WinSCP: ringan dan populer, tetapi hanya tersedia untuk Windows.
- Cyberduck: tersedia untuk Windows dan macOS, dengan dukungan banyak layanan penyimpanan awan.
Semua aplikasi tersebut membutuhkan empat informasi yang sama: alamat server, nama pengguna, kata sandi atau kunci, dan nomor port. Bila situs Anda berjalan di layanan web hosting dengan cPanel, akses SSH biasanya perlu diaktifkan terlebih dulu; langkahnya tersedia di panduan cara mengakses SSH cPanel.
Mengamankan Akses SFTP
Karena SFTP berjalan di port 22, ia mewarisi seluruh perhatian yang tertuju pada SSH. Port ini termasuk yang paling sering dipindai mesin otomatis di internet, yang mencoba menebak kombinasi pengguna dan kata sandi sepanjang hari.
Empat langkah berikut menutup sebagian besar celahnya:
- Matikan autentikasi kata sandi, gunakan SSH key: Sebuah kunci Ed25519 setara dengan kata sandi sepanjang ratusan karakter acak, dan mustahil ditebak dengan cara coba-coba. Panduan cara memasang SSH key membahas langkahnya.
- Larang login langsung sebagai root: Masuklah sebagai pengguna biasa, lalu naikkan hak akses seperlunya.
- Batasi siapa yang boleh masuk: Sebutkan daftar pengguna yang diizinkan pada konfigurasi
sshd_config, dan tolak sisanya. - Pasang pembatas percobaan masuk: Perkakas seperti fail2ban memblokir alamat IP setelah beberapa kali gagal masuk, misalnya 5 percobaan dalam 10 menit.
Mengganti port 22 ke nomor lain sering disarankan, tetapi manfaatnya terbatas. Langkah itu mengurangi kebisingan catatan log, bukan menghentikan penyerang yang serius. Prioritaskan tiga langkah pertama.
FAQ Seputar SFTP
Apa kepanjangan SFTP? Kepanjangan SFTP adalah SSH File Transfer Protocol. Sebutan "Secure File Transfer Protocol" umum dipakai tetapi tidak sesuai dengan dokumen spesifikasi resminya.
SFTP memakai port berapa? SFTP memakai port 22, port yang sama dengan SSH, melalui satu koneksi tunggal.
Apa perbedaan FTP dan SFTP? FTP mengirim data tanpa enkripsi melalui dua jalur koneksi (port 21 dan 20). SFTP mengenkripsi seluruh komunikasi melalui satu koneksi di port 22, dan secara teknis bukan turunan FTP melainkan bagian dari SSH.
Apa perbedaan SFTP dan FTPS? FTPS adalah FTP asli yang dibungkus enkripsi TLS dan tetap memakai banyak port. SFTP adalah protokol tersendiri di dalam SSH yang hanya memakai satu port.
Apakah SFTP sama dengan SCP?
Keduanya berbeda, meski sama-sama berjalan di atas SSH. Menariknya, sejak OpenSSH 9.0 pada April 2022, perintah scp justru memakai protokol SFTP di balik layar.
Apakah SFTP gratis? Ya. Layanan SFTP sudah tersedia pada OpenSSH yang terpasang di hampir semua server Linux, dan aplikasi client seperti FileZilla dapat dipakai tanpa biaya.
Kesimpulan
SFTP adalah protokol transfer file yang berjalan sebagai bagian dari SSH melalui satu koneksi terenkripsi di port 22. Kepanjangannya SSH File Transfer Protocol, dan meski namanya menyerupai FTP, keduanya adalah protokol yang berbeda sama sekali. Pemahaman ini menjelaskan hampir semua sifat SFTP yang Anda temui di lapangan, mulai dari kemudahannya melewati firewall sampai ketergantungannya pada akses SSH.
Untuk mengelola file website sehari-hari, memindahkan cadangan, atau mengunggah hasil kerja ke server, SFTP adalah pilihan yang tepat dan sebaiknya menjadi kebiasaan Anda. Pertimbangkan cara lain hanya untuk kasus khusus, misalnya transfer ratusan ribu file kecil yang lebih efisien diarsipkan terlebih dulu. Semoga artikel ini membantu.




