SFTP (SSH File Transfer Protocol) adalah protokol file aman yang digunakan untuk mengakses, mengelola, dan mentransfer file melalui SSH transport terenkripsi.
Jika dibandingkan dengan protokol FTP tradisional, SFTP menawarkan semua fungsionalitas FTP, dan lebih mudah untuk dikonfigurasi.
Berbeda dengan perintah scp
, yang hanya memungkinkan transfer file, perintah sftp
memungkinkan Anda untuk melakukan berbagai operasi pada file jarak jauh dan melanjutkan transfer file.
Dalam tutorial ini, kita akan belajar bagaimana menggunakan perintah sftp
.
Sebelum memulai
Untuk dapat mentransfer dan mengelola file melalui SFTP, Anda harus memiliki izin write (menulis) pada sistem jarak jauh.
Saat mentransfer file besar, disarankan untuk menjalankan perintah sftp di dalam sesi screen atau tmux.
Direktori tempat Anda menjalankan perintah sftp
adalah local working directory (direktori kerja lokal).
Membuat koneksi SFTP
SFTP bekerja pada model client-server. SFTP adalah sub-sistem SSH dan mendukung semua mekanisme otentikasi SSH.
Meskipun otentikasi kata sandi tradisional diatur secara default dan lebih mudah digunakan, jika Anda secara teratur terhubung ke server Anda melalui SSH/SFTP, disarankan untuk membuat SSH keys dan mengatur login SFTP tanpa kata sandi.
Untuk membuka koneksi SFTP ke sistem jarak jauh, gunakan perintah sftp diikuti oleh nama pengguna server jauh dan alamat IP atau nama domain:
sftp remote_username@server_ip_or_hostname
Jika menggunakan otentikasi kata sandi, Anda akan diminta memasukkan kata sandi pengguna. Setelah terhubung, server jarak jauh akan menampilkan pesan konfirmasi dan prompt sftp.
Connected to remote_username@alamat_ip_atau_hostname. sftp>
Jika server SSH tidak terdapat pada port default 22, gunakan opsi oPort
yang menentukan port alternatif:
sftp -oPort=custom_port remote_username@alamat_ip_atau_hostname
Kumpulan Perintah SFTP
Sebagian besar perintah SFTP mirip atau identik dengan perintah yang akan Anda gunakan di Linux shell prompt.
Anda bisa mendapatkan daftar semua perintah SFTP yang tersedia dengan mengetikkan help
atau simbol ?
help
Available commands: bye Quit sftp cd path Change remote directory to 'path' ... ... version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for help
Navigasi di SFTP
Setelah masuk ke server jarak jauh, direktori kerja saat ini adalah direktori home pengguna di mesin jarak jauh. Anda dapat memeriksanya dengan mengetik:
pwd
Remote working directory: /home/remote_username
Untuk membuat daftar file dan direktori, gunakan perintah ls:
ls
Untuk menavigasi ke direktori lain, gunakan perintah cd. Misalnya, perintah untuk berpindah ke direktori /tmp
:
cd /tmp
Semua perintah di atas digunakan untuk menavigasi dan bekerja di lokasi yang jauh. Prompt Sftp juga menyediakan perintah untuk menavigasi mesin lokal, menampilkan informasi dan memanajemen file.
Misalnya, untuk mencetak direktori kerja lokal, kita dapat mengetik:
cd lpwd
Local working directory: /home/local_username
Cara Transfer File Menggunakan SFTP
SFTP memungkinkan Anda mentransfer file dengan aman di antara dua mesin.
Jika komputer memiliki akses GUI, memang lebih mudah untuk menggunakan klien SFTP desktop seperti WinSCP atau FileZilla untuk terhubung ke server jarak jauh untuk download atau upload file. Namun, perintah sftp berguna ketika Anda bekerja di mesin yang kedua mesin tersebut tanpa GUI (hanya baris perintah) .
Cara Download File dengan Perintah SFTP
Setelah masuk ke server jarak jauh, direktori kerja saat ini adalah direktori home user jarak jauh.
Saat mengunduh file dengan perintah sftp
, file tersebut akan diunduh ke direktori tempat Anda mengetik perintah sftp
.
Untuk mengunduh satu file dari server jarak jauh, gunakan perintah get
:
get namafile.zip
Outputnya akan terlihat seperti ini:
Fetching /home/remote_username/namafile.zip to namafile.zip /home/remote_username/namafile.zip 100% 24MB 1.8MB/s 00:13
Jika ingin menyimpan file yang diunduh dengan nama yang berbeda, sebutkan nama sesudahnya:
get namafile.zip namafilebaru.zip
Untuk mengunduh direktori dari sistem jarak jauh, gunakan opsi -r
rekursif:
get -r remote_directory
Jika transfer file gagal, Anda dapat melanjutkannya menggunakan perintah reget
. Sintaks reget
sama dengan sintaks get
:
reget namafile.zip
Cara Upload File dengan Perintah SFTP
Untuk mengunggah file dari direktori lokal ke server FTP jarak jauh, gunakan perintah put
:
put namafile.zip
Outputnya akan terlihat seperti ini:
Uploading filename.zip to /home/remote_username/filename.zip namafile.zip 100% 12MB 1.7MB/s 00:06
Jika ingin mengunggah file yang tidak ada di direktori kerja saat ini, gunakan jalur absolut ke file tersebut.
Saat menggunakan perintah put
, Anda dapat menggunakan opsi yang sama yang tersedia dengan perintah get
.
Untuk menyalin direktori lokal, gunakan perintah berikut :
put -r direktori_lokal
Untuk melanjutkan kembali upload yang terputus:
reput filename.zip
Manajemen Server dengan SFTP
SFTP memungkinkan Anda untuk melakukan beberapa perintah manipulasi file dasar. Berikut ini beberapa contoh cara menggunakan shell SFTP:
- Menampilkan statistik penggunaan disk sistem jarak jauh:
df
Size Used Avail (root) %Capacity 20616252 1548776 18002580 19067476 7%
- membuat direktori baru di server jarak jauh:
mkdir nama_direktori
- Ganti nama file di server jarak jauh:
rename nama_file nama_baru
- hapus file di server jarak jauh:
rm nama_file
- Hapus direktori di server jarak jauh:
rmdir nama_direktori
- Ubah izin file pada sistem jarak jauh:
chmod 644 nama_file
- Ubah pemilik file di sistem jarak jauh:
chown user_id nama_file
Anda harus memberikan user ID ke perintah
chown
danchgrp
. - Ubah pemilik grup file jarak jauh dengan:
chgrp group_id file_name
Setelah selesai dengan pekerjaan, Anda dapat menutup koneksi cukup dengan mengetik bye
atau quit
.
Kesimpulan
Dalam tutorial ini, Anda belajar cara menggunakan perintah sftp untuk mengunduh dan mengunggah file ke server SFTP jarak jauh.
Jika Anda secara teratur terhubung ke sistem yang sama, Anda dapat menyederhanakan alur kerja dengan mendefinisikan semua koneksi ke dalam file konfigurasi SSH.