GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara menginstal dan mengatur server sftp di Ubuntu 20.04

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:

  1. Memasang sftp dan ssh Perangkat lunak di Ubuntu
  2. Membuat pengguna dan grup SFTP
  3. Mengonfigurasi layanan SSH
  4. 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


Ubuntu
  1. Cara Menginstal dan Mengkonfigurasi Server DHCP di Ubuntu 20.04

  2. Cara Memasang dan Mengatur Server Media Gerbera di Ubuntu / Debian

  3. Cara Menginstal dan Mengatur mysql 8 di Ubuntu 20.04

  1. Cara Mengatur &Menginstal Server Proxy Squid di Ubuntu 18.04

  2. Instal server SSH Ubuntu 22.04

  3. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 20.04

  1. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 20.04

  2. Cara Menginstal dan Mengkonfigurasi VNC di Ubuntu 18.04

  3. Cara Menginstal dan Mengonfigurasi Server NFS di Ubuntu 18.04