GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat a nastavit sftp server v Ubuntu 20.04

FTP

File Transfer Protocol je standardní komunikační protokol používaný pro přenos počítačových souborů ze serveru na klienta v počítačové síti (včetně Internetu). FTP je postaveno na architektuře modelu klient–server využívající oddělené řízení a datová připojení mezi klientem a serverem.
FTP bylo vždy oblíbené pro prohlížení nebo přesouvání velkých souborů mezi systémy. Soubory lze přidat na centrální server, odkud k nim pak mohou přistupovat uživatelé, kteří k nim chtějí přistupovat.

SSH

SFTP je zaměřen na poskytování zvýšeného zabezpečení s tunelováním pomocí Secure Shell 2 (SSH2), zabezpečeného tunelovacího protokolu. Emuluje FTP připojení a poskytuje firewall přátelský a šifrovaný kanál pro přenos souborů pomocí TCP portu 22.
SSH nabízí vylepšené zabezpečení tím, že celá relace přenosu souborů, včetně všech příkazů řízení relace, je vždy zcela zašifrována a pouze vyžadující otevření jednoho portu na vaší bráně firewall oproti dvěma portům, které je třeba otevřít pro připojení FTP a SSL.

Jako další funkce Secure FTP také komprimuje všechna data během přenosu, což může vést k rychlejšímu přenosu souborů.

Související obsah

  • Jak pracovat s klientem SFTP v systému Linux – 10 příkazů sftp
  • Jak nastavit server SFTP na serveru Debian 11
  • Stahování souborů ze serveru SFTP pomocí skriptu python
  • Seznam, nahrávání a stahování souborů ze serveru SFTP pomocí golang
  • Jak nastavit server SFTP na serveru OpenSUSE Leap 15.3
  • Jak nastavit server SFTP na serveru CentOS 8 /RHEL 8

Zavedení a spuštění se serverem SFTP v Ubuntu 20.04

Tato příručka vás provede procesem instalace a nastavení serveru SFTP v Ubuntu 20.04. Projdeme si tyto kroky:

  1. Instalace sftp a ssh Software v Ubuntu
  2. Vytvoření uživatele a skupiny SFTP
  3. Konfigurace služby SSH
  4. Připojení k serveru pomocí terminálu – příkazový řádek Linux

1. Instalace softwaru ssh v Ubuntu

Potřebujeme mít software poskytující ssh a sftp serverový software v našem Ubuntu

Ujistěte se, že je váš počítač aktualizován:

sudo apt update
sudo apt upgrade -y

Od sftp je závislý na ssh , budeme muset nainstalovat buď SSH nebo OpenSSH, pokud žádný z nich ještě není na vašem počítači nainstalován.
Nainstalujte ssh démon:

sudo apt install ssh

Výstup

$ 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. Vytvoření uživatele a skupiny SFTP

Musíme vytvořit uživatele a skupinu, která se bude přihlašovat k serveru SFTP.

  • Vytvořte skupinu s požadovaným názvem. Použiji sftpgroup1
    sudo addgroup sftpgroup1

Výstup:

# sudo addgroup sftpgroup1
Adding group 'sftpgroup1' (GID 1002) ...
Done.
  • Vytvořte uživatele s požadovaným jménem a přidejte jej do skupiny, kterou jsme vytvořili. Použiji sftpuser1 pro uživatele.
    sudo useradd -m sftpuser1 -g sftpgroup1
  • Přidejte heslo k novému uživateli SFTP
    sudo passwd sftpuser1

Výstup:

# sudo passwd sftpuser1
New password:
Retype new password:
passwd: password updated successfully
  • Udělte novému uživateli SFTP úplný přístup k jeho novému domovskému adresáři pomocí tohoto příkazu:
    sudo chmod 700 /home/sftpuser1/ 

Konfigurace služby SSH

Musíte nakonfigurovat službu ssh tak, aby přijímala provoz sftp. Přidejte následující konfigurace do konfiguračního souboru ssh, který se nachází zde /etc/ssh/sshd_config :

Ve svém terminálu použijte tento příkaz k otevření konfiguračního souboru s vim:

sudo vim /etc/ssh/sshd_config

Nyní přidejte tento obsah na konec souboru:

Match group sftpgroup1
ChrootDirectory /home
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

Výše uvedené konfigurace mají umožnit uživatelům ve skupině sftpgroup1 (Match group sftpgroup1 ), aby přistupovali a používali jejich domovské adresáře přes SFTP a zároveň bránili jakémukoli jinému normálnímu přístupu SSH k těmto souborům.

Uložte a zavřete konfigurační soubor SSHD.

restartujte službu SSH, abyste použili předchozí změny.

sudo systemctl restart ssh

4. Připojení k serveru pomocí terminálu – příkazový řádek Linux

K otestování přihlášení k SFTP můžete použít terminál příkazového řádku. To lze dokonce provést lokálně na serveru sftp.

Toto je formát přihlašovacího příkazu:

sftp [user]@[host]

Pojďme se připojit k našemu serveru. budete potřebovat vaše uživatelské jméno a heslo SFTP.

sftp [email protected]

Výstup:

$ 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>

Tím se přihlásíte na server. Výchozí adresář je /home dir zadaný v ChrootDirectory /home v konfiguraci ssh serveru.

Základní příkazy sftp

Zkontrolujte verzi:

sftp> version
SFTP protocol version 3
sftp>

Zobrazit vzdálený pracovní adresář

Pokud potřebujete zkontrolovat aktuální pracovní adresář na vzdáleném serveru, pwd Příkaz se hodí:

sftp> pwd
Remote working directory: /sftpuser1
sftp>

Zobrazit pracovní adresář místního počítače

Chcete-li zobrazit aktuální pracovní adresář místního systému, použijte lpwd příkaz.

sftp> lpwd
Local working directory: /home/ubuntu
sftp>

Vytvořený uživatel bude mít přístup pouze do svého adresáře. Přepněte se do tohoto adresáře pomocí následujícího příkazu:

sftp> cd sftpuser1
sftp>

Přejděte do domovského adresáře uživatele SFTP a zkuste vytvořit nový adresář následujícím způsobem:

sftp> ls
sftpuser1  ubuntu
sftp> cd sftpuser1
sftp> ls
sftp> mkdir datadir
sftp> ls
datadir

Nahrát soubory

Udělejte to z místního prostředí

Nahrajte soubory na vzdálený server pomocí této syntaxe příkazu:

$ sftp {user}@{host}:{remote-path} <<< $'put {local-path}'

Příklad:

$ 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
Udělejte to ze serveru sftp

Použijte tyto příkazy:ls pro výpis souborů lls pro místní seznam put pro nahrávání souborů:

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>

Chcete-li nahrát více souborů najednou, můžeme použít mput příkaz jako v příkladu níže. Můžete použít mput s regulárním výrazem jako data[23] nahrát data2 , data3 a ignorujte data1 . Pomocí mput můžete použít libovolný zástupný znak nebo regulární výraz .

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

Stahování souborů

Udělejte to z místního počítače

Chcete-li stáhnout soubor ze vzdáleného serveru, použijte níže uvedenou syntaxi příkazu:

$ sftp {user}@{remote-host}:{remote-file-name} {local-file-name}

Zde je ukázka stahování souboru na jednom řádku pomocí 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
Udělejte to ze vzdáleného serveru sftp

Stáhněte si jeden soubor ze serveru pomocí get . Příklad stahování data2

sftp>
sftp> ls
data2  data3
sftp> lls
sftp> get data2
Fetching /sftpuser1/data/data2 to data2
sftp> lls
data2
sftp>

Použijte mget stáhnout více souborů jako v tomto příkladu

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>

Vytvoření a smazání adresáře

Použijte příkazy mkdir a rmdir k vytváření a odstraňování adresářů

sftp>
sftp> ls
sftp> mkdir data
sftp> ls
data
sftp> rmdir data
sftp>

Odebírání souborů

Použijte příkaz rm smazat soubory

sftp> rm data*
Removing /sftpuser1/data/data2
Removing /sftpuser1/data/data3
sftp>

Přejmenování souborů

sftp>
sftp> ls
data3
sftp> rename data3 data_original
sftp> ls
data_original
sftp>

Kontrola využití souborového systému

Zobrazte statistiky pro aktuální adresář nebo souborový systém obsahující ‚cestu‘, použijte příkaz df. Můžeme použít příznak -h k zobrazení statistiky ve formátu čitelném pro člověka. Upozorňujeme, že zobrazené statistiky se týkají příslušného souborového systému vzdáleného serveru SFTP, nikoli souborového systému místního počítače.

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%

Získání nápovědy

Chcete-li získat nápovědu k dostupným příkazům a syntaxi pro SFTP, použijte „?“ nebo „help“.

sftp> ?

Výstup:

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

Další informace naleznete na manuálové stránce sftp.

$ man sftp
Ukončit relaci SFTP

Nakonec můžete ukončit sftp pomocí bye , exit nebo exit :

sftp> exit
$

Závěr

V této příručce se nám podařilo nastavit sftp server a prozkoumat základní operace, které lze na serveru provádět


Ubuntu
  1. Jak nainstalovat a nakonfigurovat server DHCP na Ubuntu 20.04

  2. Jak nainstalovat a nastavit Gerbera Media Server v Ubuntu / Debian

  3. Jak nainstalovat a nastavit mysql 8 na Ubuntu 20.04

  1. Jak nastavit a nainstalovat Squid Proxy Server na Ubuntu 18.04

  2. Nainstalujte SSH server Ubuntu 22.04

  3. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 20.04

  2. Jak nainstalovat a nakonfigurovat VNC na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat server NFS na Ubuntu 18.04