FTP
File Transfer Protocol adalah protokol komunikasi standar yang digunakan untuk transfer file komputer dari server ke klien di jaringan komputer (termasuk Internet). FTP dibangun pada arsitektur model client-server menggunakan kontrol terpisah dan koneksi data antara klien dan server.
FTP selalu populer untuk menatap atau memindahkan file besar antar sistem. File dapat ditambahkan ke server pusat, lalu pengguna yang ingin mengaksesnya dapat mengaksesnya dari sana.
SSH
SFTP ditujukan untuk memberikan keamanan yang ditingkatkan dengan tunneling menggunakan Secure Shell 2 (SSH2), protokol tunneling yang aman. Ini mengemulasi koneksi FTP dan menyediakan saluran ramah firewall dan terenkripsi untuk transfer file menggunakan port TCP 22.
SSH menawarkan keamanan yang ditingkatkan dengan memiliki seluruh sesi transfer file, termasuk semua perintah kontrol sesi, sepenuhnya dienkripsi setiap saat sementara hanya mengharuskan satu port dibuka di firewall Anda versus dua port yang perlu dibuka untuk koneksi FTP dan SSL.
Sebagai fitur tambahan, Secure FTP juga memampatkan semua data selama transmisi, yang dapat menghasilkan transfer file yang lebih cepat.
Konten Terkait
- Cara bekerja dengan klien SFTP di Linux – 10 perintah sftp
- Cara menyiapkan server SFTP di Server Debian 11
- Unduh File dari server SFTP Menggunakan skrip python
- Daftar, Unggah, dan Unduh file dari Server SFTP menggunakan golang
- Cara menyiapkan server SFTP di Server OpenSUSE Leap 15.3
- Cara menyiapkan server SFTP di Server CentOS 8 /RHEL 8
Memulai dan menjalankan server SFTP di Ubuntu 20.04
Panduan ini akan membawa Anda melalui proses menginstal dan menyiapkan server SFTP di Ubuntu 20.04. Kami akan melalui langkah-langkah ini:
- Memasang
sftp
danssh
Perangkat lunak di Ubuntu - Membuat pengguna dan grup SFTP
- Mengonfigurasi layanan SSH
- Menghubungkan ke server menggunakan terminal – baris perintah Linux
1. Menginstal Perangkat Lunak ssh di Ubuntu
Kita perlu memiliki perangkat lunak yang menyediakan ssh
dan sftp
perangkat lunak server di Ubuntu
Pastikan mesin Anda diperbarui:
sudo apt update
sudo apt upgrade -y
Sejak sftp
tergantung pada ssh
, kita perlu menginstal SSH atau OpenSSH jika tidak ada satupun yang terinstal di mesin Anda.
Instal ssh
daemon:
sudo apt install ssh
Keluaran
$ sudo apt install ssh
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libllvm11 libxdamage1
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
ssh
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 5,084 B of archives.
After this operation, 120 kB of additional disk space will be used.
Get:1 http://ports.ubuntu.com/ubuntu-ports focal-security/main arm64 ssh all 1:8.2p1-4ubuntu0.2 [5,084 B]
Fetched 5,084 B in 0s (26.8 kB/s)
Selecting previously unselected package ssh.
(Reading database ... 104454 files and directories currently installed.)
Preparing to unpack .../ssh_1%3a8.2p1-4ubuntu0.2_all.deb ...
Unpacking ssh (1:8.2p1-4ubuntu0.2) ...
Setting up ssh (1:8.2p1-4ubuntu0.2) ...
2. Membuat pengguna dan grup SFTP
Kita perlu membuat pengguna dan grup yang akan masuk ke server SFTP.
- Buat grup dengan nama yang Anda inginkan. Saya akan menggunakan
sftpgroup1
sudo addgroup sftpgroup1
Keluaran:
# sudo addgroup sftpgroup1
Adding group 'sftpgroup1' (GID 1002) ...
Done.
- Buat pengguna dengan nama yang ingin Anda tambahkan ke grup yang kami buat. Saya akan menggunakan
sftpuser1
untuk pengguna.sudo useradd -m sftpuser1 -g sftpgroup1
- Tambahkan kata sandi ke pengguna SFTP baru
sudo passwd sftpuser1
Keluaran:
# sudo passwd sftpuser1
New password:
Retype new password:
passwd: password updated successfully
- Beri pengguna SFTP baru akses lengkap ke direktori home baru mereka menggunakan perintah ini:
sudo chmod 700 /home/sftpuser1/
Mengonfigurasi layanan SSH
Anda perlu mengonfigurasi layanan ssh untuk menerima lalu lintas sftp. Tambahkan konfigurasi berikut ke file konfigurasi ssh yang terletak di sini /etc/ssh/sshd_config
:
Di terminal Anda, gunakan perintah ini untuk membuka file konfigurasi dengan vim:
sudo vim /etc/ssh/sshd_config
Sekarang tambahkan konten ini ke bagian bawah file:
Match group sftpgroup1
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Konfigurasi di atas dimaksudkan untuk mengizinkan pengguna di grup sftpgroup1 (Match group sftpgroup1
) untuk mengakses dan menggunakan direktori home mereka melalui SFTP sambil mencegah akses SSH normal lainnya ke file tersebut.
Simpan dan tutup file konfigurasi SSHD.
restart layanan SSH untuk menerapkan perubahan sebelumnya.
sudo systemctl restart ssh
4. Menghubungkan ke server menggunakan terminal – baris perintah Linux
Anda dapat menggunakan terminal baris perintah untuk menguji login Anda ke SFTP. Ini bahkan dapat dilakukan secara lokal di server sftp.
Ini adalah format perintah login:
sftp [user]@[host]
Mari terhubung ke server kami. nama pengguna dan kata sandi SFTP Anda akan diperlukan.
sftp [email protected]
Keluaran:
$ sftp [email protected]
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:99KvuL95zO2CQbC8X0Re/Q+cYrJgqQgzpf1leemnjmY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
[email protected]'s password:
Connected to 127.0.0.1.
sftp>
Ini akan memasukkan Anda ke server. Direktori default adalah /home
dir ditentukan dalam ChrootDirectory /home
direktif dalam konfigurasi server ssh.
Perintah sftp dasar
Periksa Versi:
sftp> version
SFTP protocol version 3
sftp>
Tampilkan Direktori Kerja jarak jauh
Jika Anda perlu memeriksa direktori kerja saat ini di server jauh, pwd
perintah sangat berguna:
sftp> pwd
Remote working directory: /sftpuser1
sftp>
Tampilkan direktori Kerja mesin lokal
Untuk menampilkan direktori kerja sistem lokal saat ini, gunakan lpwd
perintah.
sftp> lpwd
Local working directory: /home/ubuntu
sftp>
Pengguna yang dibuat hanya akan memiliki akses ke direktorinya. Mari beralih ke direktori tersebut dengan perintah berikut:
sftp> cd sftpuser1
sftp>
Pindah ke direktori home pengguna SFTP dan coba buat direktori baru sebagai berikut:
sftp> ls
sftpuser1 ubuntu
sftp> cd sftpuser1
sftp> ls
sftp> mkdir datadir
sftp> ls
datadir
Unggah file
Melakukannya dari lokal
Unggah file ke server jauh menggunakan sintaks perintah ini:
$ sftp {user}@{host}:{remote-path} <<< $'put {local-path}'
Contoh:
$ sftp [email protected]:/sftpuser1/ <<< $'put ./citizix.txt'
[email protected]'s password:
Connected to 127.0.0.1.
Changing to: /sftpuser1/
sftp> put ./citizix.txt
Uploading ./citizix.txt to /sftpuser1/citizix.txt
./citizix.txt
Melakukannya dari server sftp
Gunakan perintah ini:ls
untuk membuat daftar file, lls
untuk daftar lokal, put
untuk mengunggah file:
sftp>
sftp> pwd
Remote working directory: /sftpuser1/datadir
sftp> ls
sftp> lls
citizix.txt snap tmp
sftp> put citizix.txt
Uploading citizix.txt to /sftpuser1/datadir/citizix.txt
citizix.txt 100% 32 25.8KB/s 00:00
sftp> ls
citizix.txt
sftp>
Untuk mengupload banyak file sekaligus, kita dapat menggunakan mput
perintah seperti pada contoh di bawah ini. Anda dapat menggunakan mput
dengan ekspresi reguler seperti data[23]
untuk mengunggah data2
, data3
dan abaikan data1
. Anda dapat menggunakan wildcard atau ekspresi reguler apa pun dengan mput
.
sftp>
sftp> pwd
Remote working directory: /sftpuser1/data
sftp> ls
sftp> lls
data1 data2 data3
sftp> mput data[23]
Uploading data2 to /sftpuser1/data/data2
data2 100% 0 0.0KB/s 00:00
Uploading data3 to /sftpuser1/data/data3
data3 100% 0 0.0KB/s 00:00
sftp> ls
data2 data3
Mengunduh file
Melakukannya dari mesin lokal
Untuk mengunduh file dari server jauh, gunakan sintaks perintah di bawah ini:
$ sftp {user}@{remote-host}:{remote-file-name} {local-file-name}
Berikut demo mengunduh file dalam satu baris menggunakan sftp:
# sftp [email protected]:/sftpuser1/citizix.txt .
[email protected]'s password:
Connected to 127.0.0.1.
Fetching /sftpuser1/citizix.txt to ./citizix.txt
/sftpuser1/citizix.txt 100% 32 26.7KB/s 00:00
Melakukannya dari server sftp jarak jauh
Unduh file tunggal dari server menggunakan get
. Contoh mengunduh data2
sftp>
sftp> ls
data2 data3
sftp> lls
sftp> get data2
Fetching /sftpuser1/data/data2 to data2
sftp> lls
data2
sftp>
Gunakan mget
untuk mengunduh banyak file seperti dalam contoh ini
sftp>
sftp> ls
data2 data3
sftp> lls
sftp> mget data*
Fetching /sftpuser1/data/data2 to data2
Fetching /sftpuser1/data/data3 to data3
sftp> lls
data2 data3
sftp>
Membuat dan menghapus direktori
Gunakan perintah mkdir
dan rmdir
untuk membuat dan menghapus direktori
sftp>
sftp> ls
sftp> mkdir data
sftp> ls
data
sftp> rmdir data
sftp>
Menghapus file
Gunakan perintah rm
untuk menghapus file
sftp> rm data*
Removing /sftpuser1/data/data2
Removing /sftpuser1/data/data3
sftp>
Mengganti nama file
sftp>
sftp> ls
data3
sftp> rename data3 data_original
sftp> ls
data_original
sftp>
Memeriksa Penggunaan Sistem File
Menampilkan statistik untuk direktori atau sistem file saat ini yang berisi 'path', gunakan perintah df. Kita dapat menggunakan flag -h untuk menampilkan statistik dalam format yang dapat dibaca manusia. Perhatikan bahwa statistik yang ditampilkan adalah untuk sistem file masing-masing server SFTP jarak jauh dan bukan sistem file mesin lokal.
sftp> df
Size Used Avail (root) %Capacity
29540600 5917856 22103188 23622744 20%
sftp> df -h
Size Used Avail (root) %Capacity
28.2GB 5.6GB 21.1GB 22.5GB 20%
Mendapatkan Bantuan
Untuk mendapatkan bantuan tentang perintah dan sintaks yang tersedia untuk SFTP, gunakan '?' atau 'help'.
sftp> ?
Keluaran:
sftp> ?
Available commands:
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
? Synonym for help
Lihat halaman manual sftp untuk membaca lebih lanjut.
$ man sftp
Keluar dari Sesi SFTP
Terakhir, Anda dapat keluar dari sftp menggunakan bye
, exit
, atau exit
:
sftp> exit
$
Kesimpulan
Dalam panduan ini kami berhasil menyiapkan server sftp dan menjelajahi operasi dasar yang dapat dilakukan di server