GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren und richten Sie einen sftp-Server in Ubuntu 20.04 ein

FTP

Das File Transfer Protocol ist ein Standardkommunikationsprotokoll, das für die Übertragung von Computerdateien von einem Server zu einem Client in einem Computernetzwerk (einschließlich Internet) verwendet wird. FTP basiert auf einer Client-Server-Modellarchitektur mit separaten Steuerungs- und Datenverbindungen zwischen dem Client und dem Server.
FTP war schon immer beliebt, um große Dateien zwischen Systemen zu speichern oder zu verschieben. Dateien können einem zentralen Server hinzugefügt werden, und Benutzer, die darauf zugreifen möchten, können von dort darauf zugreifen.

SSH

SFTP zielt darauf ab, eine verbesserte Sicherheit durch Tunneling mit Secure Shell 2 (SSH2), einem sicheren Tunneling-Protokoll, bereitzustellen. Es emuliert eine FTP-Verbindung und bietet einen Firewall-freundlichen und verschlüsselten Kanal für Dateiübertragungen über TCP-Port 22.
SSH bietet verbesserte Sicherheit, da die gesamte Dateiübertragungssitzung, einschließlich aller Sitzungssteuerungsbefehle, jederzeit und nur vollständig verschlüsselt ist erfordern, dass ein einzelner Port auf Ihrer Firewall geöffnet werden muss, im Gegensatz zu den zwei Ports, die für FTP- und SSL-Verbindungen geöffnet werden müssen.

Als zusätzliche Funktion komprimiert Secure FTP auch alle Daten während der Übertragung, was zu schnelleren Dateiübertragungen führen kann.

Verwandte Inhalte

  • Arbeiten mit dem SFTP-Client unter Linux – 10 sftp-Befehle
  • So richten Sie einen SFTP-Server auf Debian 11 Server ein
  • Dateien vom SFTP-Server mit einem Python-Skript herunterladen
  • Auflisten, Hochladen und Herunterladen von Dateien von einem SFTP-Server mit Golang
  • So richten Sie einen SFTP-Server auf OpenSUSE Leap 15.3 Server ein
  • So richten Sie einen SFTP-Server auf CentOS 8 /RHEL 8 Server ein

Mit dem SFTP-Server in Ubuntu 20.04 loslegen

Diese Anleitung führt Sie durch den Prozess der Installation und Einrichtung des SFTP-Servers in Ubuntu 20.04. Wir werden diese Schritte durchlaufen:

  1. Installieren des sftp und ssh Software in Ubuntu
  2. SFTP-Benutzer und -Gruppe erstellen
  3. SSH-Dienst konfigurieren
  4. Verbindung zum Server über das Terminal herstellen – Linux-Befehlszeile

1. Installieren der ssh-Software in Ubuntu

Wir brauchen die Software, die den ssh bereitstellt und sftp Serversoftware in unserem Ubuntu

Stellen Sie sicher, dass Ihr Computer aktualisiert ist:

sudo apt update
sudo apt upgrade -y

Seit sftp ist abhängig von ssh , müssen wir entweder SSH oder OpenSSH installieren, wenn keines davon bereits auf Ihrem Computer installiert ist.
Installieren Sie ssh Dämon:

sudo apt install ssh

Ausgabe

$ 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. SFTP-Benutzer und -Gruppe erstellen

Wir müssen einen Benutzer und eine Gruppe erstellen, die sich beim SFTP-Server anmelden.

  • Erstellen Sie eine Gruppe mit dem gewünschten Namen. Ich werde sftpgroup1 verwenden
    sudo addgroup sftpgroup1

Ausgabe:

# sudo addgroup sftpgroup1
Adding group 'sftpgroup1' (GID 1002) ...
Done.
  • Erstellen Sie einen Benutzer mit dem gewünschten Namen und fügen Sie ihn der von uns erstellten Gruppe hinzu. Ich werde sftpuser1 verwenden für den Benutzer.
    sudo useradd -m sftpuser1 -g sftpgroup1
  • Fügen Sie dem neuen SFTP-Benutzer
    sudo passwd sftpuser1

Ausgabe:

# sudo passwd sftpuser1
New password:
Retype new password:
passwd: password updated successfully
  • Gewähren Sie dem neuen SFTP-Benutzer mit diesem Befehl vollständigen Zugriff auf sein neues Home-Verzeichnis:
    sudo chmod 700 /home/sftpuser1/ 

SSH-Dienst konfigurieren

Sie müssen den ssh-Dienst so konfigurieren, dass er sftp-Datenverkehr akzeptiert. Fügen Sie die folgenden Konfigurationen zur ssh-Konfigurationsdatei hinzu, die sich hier befindet /etc/ssh/sshd_config :

Verwenden Sie in Ihrem Terminal diesen Befehl, um die Konfigurationsdatei mit vim zu öffnen:

sudo vim /etc/ssh/sshd_config

Fügen Sie nun diesen Inhalt am Ende der Datei hinzu:

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

Die obigen Konfigurationen sollen Benutzern in der Gruppe sftpgroup1 (Match group sftpgroup1 ) über das SFTP auf ihre Home-Verzeichnisse zugreifen und diese verwenden, während jeder andere normale SSH-Zugriff auf diese Dateien verhindert wird.

Speichern und schließen Sie die SSHD-Konfigurationsdatei.

Starten Sie den SSH-Dienst neu, um vorherige Änderungen zu übernehmen.

sudo systemctl restart ssh

4. Verbindung zum Server über das Terminal herstellen – Linux-Befehlszeile

Sie können das Befehlszeilenterminal verwenden, um Ihre Anmeldung beim SFTP zu testen. Dies kann sogar lokal auf dem sftp-Server erfolgen.

Dies ist das Format des Login-Befehls:

sftp [user]@[host]

Verbinden wir uns mit unserem Server. Ihr SFTP-Benutzername und Ihr Passwort werden benötigt.

sftp [email protected]

Ausgabe:

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

Dadurch werden Sie beim Server angemeldet. Das Standardverzeichnis ist /home dir im ChrootDirectory /home angegeben Direktive in den ssh-Serverkonfigurationen.

Grundlegende sftp-Befehle

Version prüfen:

sftp> version
SFTP protocol version 3
sftp>

Remote-Arbeitsverzeichnis anzeigen

Wenn Sie das aktuelle Arbeitsverzeichnis auf dem Remote-Server überprüfen müssen, wird die Datei pwd Befehl ist praktisch:

sftp> pwd
Remote working directory: /sftpuser1
sftp>

Arbeitsverzeichnis des lokalen Computers anzeigen

Um das aktuelle Arbeitsverzeichnis des lokalen Systems anzuzeigen, verwenden Sie lpwd Befehl.

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

Der erstellte Benutzer hat nur Zugriff auf sein Verzeichnis. Wechseln wir mit dem folgenden Befehl in dieses Verzeichnis:

sftp> cd sftpuser1
sftp>

Wechseln Sie in das Home-Verzeichnis des SFTP-Benutzers und versuchen Sie, wie folgt ein neues Verzeichnis zu erstellen:

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

Dateien hochladen

Vom Lokalen aus

Laden Sie Dateien mit dieser Befehlssyntax auf einen Remote-Server hoch:

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

Beispiel:

$ 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
Über den sftp-Server

Verwenden Sie diese Befehle:ls um Dateien aufzulisten, lls für lokale Liste put zum Hochladen von Dateien:

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>

Um mehrere Dateien auf einmal hochzuladen, können wir mput verwenden Befehl wie im Beispiel unten. Sie können mput verwenden mit regulären Ausdrücken wie data[23] um data2 hochzuladen , data3 und ignorieren Sie data1 . Sie können einen beliebigen Platzhalter oder regulären Ausdruck mit mput verwenden .

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

Dateien herunterladen

Von der lokalen Maschine aus

Um eine Datei von einem Remote-Server herunterzuladen, verwenden Sie die folgende Befehlssyntax:

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

Hier ist eine Demo zum Herunterladen einer Datei in einer Zeile mit 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
Vom Remote-SFTP-Server aus

Laden Sie eine einzelne Datei mit get vom Server herunter . Beispiel für das Herunterladen von data2

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

Verwenden Sie mget um wie in diesem Beispiel mehrere Dateien herunterzuladen

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>

Verzeichnis erstellen und löschen

Verwenden Sie die Befehle mkdir und rmdir um Verzeichnisse zu erstellen und zu löschen

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

Dateien entfernen

Verwenden Sie den Befehl rm um Dateien zu löschen

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

Dateien umbenennen

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

Überprüfen der Dateisystemnutzung

Zeigen Sie Statistiken für das aktuelle Verzeichnis oder Dateisystem an, das „Pfad“ enthält, verwenden Sie den Befehl df. Wir können das Flag -h verwenden, um Statistiken in einem für Menschen lesbaren Format anzuzeigen. Beachten Sie, dass die angezeigten Statistiken für das jeweilige Dateisystem des Remote-SFTP-Servers und nicht für das Dateisystem des lokalen Computers gelten.

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%

Hilfe erhalten

Um Hilfe zu verfügbaren Befehlen und Syntax für SFTP zu erhalten, verwenden Sie „?“ oder „Hilfe“.

sftp> ?

Ausgabe:

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

Weitere Informationen finden Sie auf der sftp-Manpage.

$ man sftp
Verlassen Sie die SFTP-Sitzung

Abschließend können Sie den sftp mit bye verlassen , exit , oder exit :

sftp> exit
$

Schlussfolgerung

In diesem Leitfaden haben wir es geschafft, einen sftp-Server einzurichten und grundlegende Operationen zu untersuchen, die auf dem Server ausgeführt werden können


Ubuntu
  1. So richten Sie den Squid-Proxyserver unter Ubuntu 18.04 ein und installieren ihn

  2. Installieren Sie den SSH-Server Ubuntu 22.04

  3. So installieren und konfigurieren Sie den DHCP-Server unter Ubuntu 20.04

  4. So installieren und richten Sie Gerbera Media Server in Ubuntu / Debian ein

  5. So installieren und konfigurieren Sie mysql 8 unter Ubuntu 20.04

So installieren Sie OpenSSH unter Ubuntu 20.04

So installieren Sie den SSH-Server in Ubuntu 20.04

So installieren Sie den SSH-Server unter Ubuntu 18.04 LTS

So installieren Sie den SSH-Server unter Ubuntu 20.04 LTS

So installieren Sie den SSH-Server unter Ubuntu 22.04 LTS

So installieren Sie Apache Server und richten virtuelle Hosts unter Ubuntu 22.04 ein