Cara Transfer File dengan Aman Menggunakan SFTP
FTP adalah metode standar untuk transfer file atau data lainnya di komputer. Namun seiring dengan sistem keamanan yang semakin berlipat, FTP menjadi sangat terbelakang. Untungnya, ada SFTP yang bisa digunakan oleh pengguna VPS hosting.
Di artikel ini, kami akan membahas cara menggunakan SFTP agar transfer file lebih aman. Kami juga akan menjabarkan beberapa perintah (command) penting beserta fungsi dan cara kerjanya.
Bagaimana Membuat Koneksi SFTP?
SFTP adalah subsistem SSH, yang berarti mendukung semua metode autentikasi SSH. Selain pembuatan dan penggunaan autentikasi password yang jadi lebih mudah, pembuatan SSH key untuk login SFTP tanpa password juga jauh lebih aman.
Kalau belum tahu cara membuat SSH key, silakan baca tutorial kami tentang cara menggunakan SSH key. Setelah itu, ikuti langkah-langkah di bawah ini agar bisa terhubung keSFTP:
- Cek SSH access dengan menjalankan perintah di bawah ini:
ssh user@server_ipaddress ssh user@remotehost_domainname
- Jika tidak ada error yang teridentifikasi, tinggalkan session.
- Buat koneksi SFTP menggunakan perintah ini:
sftp user@server_ipaddress sftp user@remotehost_domainname
- Apabila Anda menggunakan custom SSH port, jalankan perintah ini untuk mengubah SFTP port:
sftp -oPort=customport user@server_ipaddress sftp -oPort=customport user@remotehost_domainname
- Berikut tampilannya:
sftp -oPort=49166 user@31.220.57.32
SFTP prompt akan muncul jika koneksi berhasil dibuat.
Bagaimana Cara Menggunakan SFTP untuk Transfer File?
Di bagian ini kami akan membahas cara transfer remote file ke sistem lokal menggunakan SFTP dan sebaliknya.
Tips Berguna
Transfer file juga bisa dilakukan dengan aplikasi SFTP, seperti WinSCP dan FileZilla. Kalau ingin menggunakan FileZilla, silakan baca tutorial kami tentang cara menggunakan FileZilla.
Transfer File Remote dari Server ke Sistem Lokal
Pertama-tama, cek direktori lokal dan direktori remote yang digunakan saat ini. Jalankan perintah ini:
sftp> lpwd Local directory: /LocalDirectory sftp> pwd Remote directory: /RemoteDirectory
Gunakan perintah get untuk mentransfer file dari remote server ke localhost. Berikut sintaks dasarnya:
get /RemoteDirectory/filename.txt
Sebagai contoh, untuk menyalin file /etc/xinetd.conf dari remote server ke localhost, gunakan command ini:
get /etc/xinetd.conf
File xinetd.conf kini tersimpan di direktori /user/home localhost.
Untuk mengunduh banyak (multiple) file dengan SFTP, gunakan perintah mget. Untuk mengunduh semua file di direktori /etc berekstensi .conf dan memindahkannya ke direktori yang digunakan saat ini, jalankan perintah berikut:
mget /etc/*.conf
Semua file *.conf yang sudah diunduh tersimpan di direktori /user/home di komputer.
Transfer File dari Localhost ke Remote Server
Untuk menyalin file dari localhost ke remote server, gunakan perintah get sekali lagi. Namun untuk konteks ini, sintaks perintahnya seperti ini:
get file.txt /RemoteDirectory
Untuk memindahkan file example.txt dari localhost ke remote server, tambahkan perintah ini:
put /home/user-name/example.txt /root
File akan tersimpan di direktori root remote server. Anda juga bisa mentransfer banyak file dengan perintah mput. Cara kerjanya hampir sama dengan mget:
mput /home/user-name/*.txt /root
Perintah di atas akan memindahkan semua file berekstensi .txt yang ada di /home/user-name dari localhost ke direktori remote /root.
Penting! Untuk mengunduh dan mengunggah file dengan SFTP, Anda tetap harus menambahkan perintah put atau get dan tekan TAB.
Perintah Untuk Navigasi dengan SFTP
Agar navigasi melalui remote server dan local server lebih efisien, beberapa perintah digunakan dengan SFTP. Perintahnya sama seperti yang digunakan di Linux shell prompt.
Misalnya, perintah pwd akan memberitahukan direktori mana yang Anda gunakan saat ini.
sftp> pwd Remote directory: /RemoteDirectory
atau
sftp> lpwd Local directory: /LocalDirectory
Daftar file dan direktori yang digunakan untuk direktori remote juga bisa ditampilkan dengan:
ls
Demikian juga untuk direktori local server:
lls
Sebagai contoh, hasilnya akan seperti ini:
Pictures Templates Media Text.txt Documents
Untuk beralih dari satu direktori remote ke direktori lokal lainnya saat ini, tambahkan perintah berikut:
cd name_of_directory lcd name_of_directory
Gunakan perintah ! dan exit untuk kembali ke local shell dan keluar dari SFTP.
Dasar-dasar Pemeliharaan File Menggunakan SFTP
Dengan SFTP, Anda juga bisa mengelola direktori dan file menggunakan perintah yang spesifik.
Untuk mengecek disk space remote server dalam satuan gigabyte, gunakan fungsi df:
df -h
Berikut contoh hasilnya:
Filesystem Size Used Avail Use% Mounted on /dev/ploop29212p1 59G 2.5G 56G 5% / none 1.5G 0 1.5G 0% /sys/fs/cgroup none 1.5G 0 1.5G 0% /dev tmpfs 1.5G 0 1.5G 0% /dev/shm tmpfs 1.5G 568K 1.5G 1% /run tmpfs 308M 0 308M 0% /run/user/0
Untuk buat direktori baru di remote server dan/atau local server, gunakan perintah mkdir:
mkdir name_of_directory lmkdir name_of_directory
Hapus satu direktori di remote server dengan perintah rmdir:
rmdir name_of_directory
Jalankan perintah ini untuk mengganti nama file remote:
rename filename new_filename
Berikut contoh penerapannya:
rename Old_FileExample New_FileExample
Untuk menghapus file remote, gunakan perintah rm:
rm filename
Fungsi perintah chwon adalah untuk mengganti kepemilikan file:
chown userid filename
userid bisa diganti dengan username atau ID numerik user. Contoh:
chown UserOne FileExample chown 1234 FileExample
Untuk mengubah kepemilikan tim (group) atas suatu file, gunakan chgrp:
chgrp groupid filename
Contoh:
chgrp NewGroup FileExample
Untuk mengubah hak akses (permission) file, gunakan perintah interaktif chmod:
chmod 764 FileExample
Pada contoh di atas, tiga digit (764) mengacu pada file user, group, dan user lain (other).
Adapun hak akses untuk membaca (read – r), menulis (write – w), dan menjalankan (execute – x), angkanya masing-masing adalah 4, 2, 1. Sedangkan 0 digunakan jika Anda tidak ingin memberikan hak akses.
Untuk mendelegasikan hak akses, hitung total angka untuk masing-masing user class. Contoh:
chmod ugo FileExample # u represents the User who'll be able to read, write and execute the file. # g is for Groups, here we've given the permission to write and execute the file. # o or Others will only be able to read the file.
Daftar Perintah SFTP
Cheat sheet singkat di bawah ini menampilkan semua perintah SFTP yang tersedia. Jika ingin mencarinya sendiri, cukup masukkan perintah help atau ?.
bye Quit sftp cd path Change remote directory to 'path' chgrp [-h] grp path Change group of file 'path' to 'grp' chmod [-h] mode path Change permissions of file 'path' to 'mode' chown [-h] own path Change owner of file 'path' to 'own' df [-hi] [path] Display statistics for current directory or filesystem containing 'path' exit Quit sftp get [-afpR] remote [local] Download file help Display this help text lcd path Change local directory to 'path' lls [ls-options [path]] Display local directory listing lmkdir path Create local directory ln [-s] oldpath newpath Link remote file (-s for symlink) lpwd Print local working directory ls [-1afhlnrSt] [path] Display remote directory listing lumask umask Set local umask to 'umask' mkdir path Create remote directory progress Toggle display of progress meter put [-afpR] local [remote] Upload file pwd Display remote working directory quit Quit sftp reget [-fpR] remote [local] Resume download file rename oldpath newpath Rename remote file reput [-fpR] local [remote] Resume upload file rm path Delete remote file rmdir path Remove remote directory symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell
Apa Itu SFTP?
SSH File Transfer Protocol, atau yang disingkat SFTP, adalah sebuah metode yang menjamin keamanan perpindahan atau transfer file. Dengan menggunakan protokol SSH, SFTP mendukung enkripsi dan metode keamanan lainnya. Hal ini menjadikan SFTP sebagai satu-satunya file transfer protocol yang aman dan menghindarkan proses transfer data dari berbagai serangan.
Selama transfer file berlangsung, semua data dibagi ke dalam packet dan dikirimkan melalui satu koneksi yang aman.
Pada saat data ditransfer antara klien dan server, informasi yang bersifat sensitif akan dienkripsi dan dibuat menjadi tidak terbaca. Dengan kata lain, konten awal (plaintext) akan diganti dengan konten yang dipenuhi dengan kata sandi (ciphertext).
Hanya penerima yang memiliki decryption key yang bisa melihat dan membaca konten awal. Dengan begini, akses yang tidak sah tidak akan bisa ‘mengutak-atik’ transfer file.
File transfer protocol (FTP) yang lazim dipakai menggunakan dua channel yang berbeda untuk perpindahan dan pertukaran data, yaitu command channel dan data channel. Sedangkan SFTP hanya punya satu channel yang terenkripsi. Di channel ini, data ditransfer dengan status terenkripsi, dalam packet yang sudah disandikan.
Kesimpulan
Kini Anda sudah tahu cara menggunakan SFTP untuk transfer file secara aman. Jika membutuhkan informasi mengenai FTP, bisa langsung mengunjungi tutorial lain yang ada di blog kami.
Silakan tinggalkan komentar atau kritik dan saran pada kolom di bawah ini.