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:

  1. Cek SSH access dengan menjalankan perintah di bawah ini:
ssh user@server_ipaddress
ssh user@remotehost_domainname
  1. Jika tidak ada error yang teridentifikasi, tinggalkan session.
  2. Buat koneksi SFTP menggunakan perintah ini:
sftp user@server_ipaddress

sftp user@remotehost_domainname
  1. 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
  1. 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.

Author
Penulis

Ariata C.

Ariata suka sekali menulis dan menerjemahkan, dan sekarang ini bekerja sebagai translator di Hostinger Indonesia. Lewat artikel dan tutorial yang diterbitkan di blog Hostinger, Ariata ingin membagikan pengetahuan tentang website, WordPress, dan hal terkait hosting lainnya kepada para pembaca.