Úvod
SFTP (Safe File Transfer Protocol) je součástí protokolu SSH určeného k bezpečnému přenosu souborů mezi vzdálenými systémy. Umožňuje uživatelům prohlížet, spravovat a měnit oprávnění k souborům a adresářům na vzdálených systémech.
V tomto tutoriálu si projdeme příkazy, které můžete použít s SFTP, a pro každý z nich poskytneme vysvětlení, možnosti a příklady.

Předpoklady
- Přístup k místnímu systému a vzdálenému serveru připojený pomocí páru veřejných klíčů SSH.
- Fungující připojení k internetu.
- Přístup do okna terminálu.
Seznam příkazů a možností SFTP
SFTP umožňuje uživatelům přenášet data mezi vzdáleným serverem SFTP a místním klientským systémem. SFTP používá síťový protokol SSH k propojení dvou systémů, které sdílejí veřejný klíč SSH.
Připojením k serveru SFTP se otevře rozhraní shellu SFTP. Rozhraní prostředí SFTP podporuje následující příkazy:
Příkaz | Popis |
cd [path] | Změňte adresář na vzdáleném serveru na [path] . |
lcd [path] | Změňte adresář v místním systému na [path] . |
chgrp [group ID] [path] | Změnit vlastnictví skupiny na [group ID] pro soubor nebo složku umístěnou na [path] . |
chmod [mode] [path] | Změnit vlastnictví na [mode] pro soubor nebo složku umístěnou na [path] . |
chown [user ID] [path] | Změnit vlastnictví uživatele na [user ID] pro soubor nebo složku umístěnou na [path] . |
help | Zobrazte text nápovědy. |
get [remote path] [local path] | Přeneste soubor nebo adresář z [remote path] na vzdáleném serveru na [local path] v místním systému. |
lls [options] [path] | Zobrazit výpis pro adresář umístěný na [path] na místním systému. Používá ls možnosti příkazů. |
ln [old path] [new path] | Vytvořte symbolický odkaz ze [old path] na [new path] na vzdáleném serveru. |
lmkdir [path] | Vytvořte adresář na [path] v místním systému. |
lpwd | Zobrazit aktuální místní adresář. |
ls [options] [path] | Zobrazit výpis pro adresář umístěný na [path] na vzdáleném serveru. Používá ls možnosti příkazů. |
lumask [mask] | Nastavit masku místních oprávnění na [mask] . |
mkdir [path] | Vytvořte adresář na [path] na vzdáleném serveru. |
put [local path] [remote path] | Přeneste soubor nebo adresář z [local path] v místním systému na [remote path] na vzdáleném serveru. |
pwd | Zobrazit aktuální vzdálený adresář. |
exit | Opusťte rozhraní SFTP. |
exit | Opusťte rozhraní SFTP. |
rename [old path] [new path] | Přejmenujte soubor na vzdáleném serveru z [old path] na [new path] . |
rmdir [path] | Odeberte adresář umístěný na [path] na vzdáleném serveru. |
rm [path] | Odeberte soubor umístěný na [path] na vzdáleném serveru. |
symlink [old path] [new path] | Vytvořte symbolický odkaz ze [old path] na [new path] na vzdáleném serveru. |
version | Zobrazit aktuální verzi SFTP |
![command] | Spustit <strong>[command]</strong> v místním prostředí. |
! | Dočasně přejít do místního prostředí. |
? | Zobrazte text nápovědy. |
Připojování k SFTP
Připojení k SFTP používá stejnou syntaxi jako připojení ke vzdálenému systému pomocí SSH:
sftp [username]@[remote hostname or IP address]
Například připojení k serveru pomocí phoenixnap uživatelské jméno na IP adrese 192.168.100.7 :
sftp [email protected]
Pokud je připojení úspěšné, shell se přesune do rozhraní SFTP, což je označeno sftp>
místo aktuálního uživatelského jména:

Při připojování ke vzdálenému systému pomocí SFTP použijte s sftp
následující možnosti příkaz pro změnu jeho chování:
Možnost | Popis |
-1 | Při připojování použijte verzi 1 protokolu SSH. |
-4 | Používejte pouze adresy IPv4. |
-6 | Používejte pouze adresy IPv6. |
-A | Umožňuje předávání ověřovacího agenta SSH na vzdálený server. |
-a | Pokuste se pokračovat v přerušených přenosech souborů. |
-B [buffer size] | Nastavte vlastní velikost vyrovnávací paměti (výchozí hodnota je 32 768 bajtů). |
-b [batch file] | Zadejte dávkový soubor pro spuštění sftp příkaz v dávkovém režimu. |
-C | Použít kompresi souborů. |
-c [cipher] | Vyberte šifru, která se použije při šifrování dat pro přenos. |
-D [SFTP server path] | Připojte se k místnímu serveru SFTP bez použití SSH. |
-F [SSH configuration file] | Určete konfigurační soubor SSH, který se má použít při připojování. |
-f | Vyprázdněte soubory na disk ihned po přenosu. |
-i [private key file] | Vyberte soubor, který obsahuje soukromý klíč pro ověření veřejného klíče. |
-J [destination] | Nastavte předávání TCP přes zadaný cíl. |
-l [kbit/s] | Nastavte limit pro šířku pásma připojení v kbit/s. |
-N | Zakažte tichý režim. |
-o [SSH option] | Při připojování k SFTP přidejte možnost příkazu ssh. |
-P [port number] | Nastavte port, ke kterému se chcete připojit. |
-p | Při přenosu zachovejte oprávnění k souboru a doby přístupu. |
-q | Povolte tichý režim. |
-R [number of requests] | Nastavte počet povolených souběžných požadavků na přenos souborů. |
-r | Přenášejte adresáře rekurzivně. |
-S [client] | Určete klienta SFTP, kterého chcete použít k připojení. |
-s [SSH subsystem or SFTP server path] | Vyberte cestu podsystému SSH2 nebo serveru SFTP. |
-v | Uchovávejte podrobný protokol relace. |
Použijte exit
příkaz k ukončení aktuálního připojení:
exit
Přenos souborů
Použijte get
a put
příkazy k vytvoření požadavku na přenos souboru v SFTP. get
příkaz přenese soubory ze vzdáleného serveru do místního systému, zatímco put
příkaz dělá opak.
get
používá následující základní syntaxi:
get [path to file]
Pomocí get
příkaz přenese soubor ze vzdáleného serveru do Domů místního systému adresář. Například:
get example01.txt

Na druhou stranu pomocí put
příkaz přenese soubor z místního systému do Domů vzdáleného serveru adresář:
put example02.txt

Chcete-li přenést soubor do jiného adresáře, připojte název adresáře na konec get
nebo put
příkaz:
get [path to file] [path to directory]
put [path to file] [path to directory]
Chcete-li změnit název souboru v místním systému, připojte nový název souboru na konec příkazu:
get [path to file] [new file name]
put [path to file] [new file name]
get
a put
příkazy používají následující možnosti:
Možnost | Popis |
-a | Pokuste se obnovit přenos souboru. |
-f | Vyprázdněte soubor na disk ihned po přenosu. |
-p | Zachovejte při přenosu oprávnění k souboru a doby přístupu. |
-R | Přeneste celý adresář rekurzivně. Při použití této možnosti definujte cestu k adresáři namísto cesty k souboru. |
Změna oprávnění k souboru
SFTP také umožňuje upravit oprávnění k souborům a adresářům na vzdáleném serveru. chown
příkaz změní vlastnictví souboru pro jednotlivé uživatele:
chown [user ID] [path to file]
Na rozdíl od chown
příkaz, který vyžaduje ID uživatele, funguje příkaz chmod stejně jako ve standardním shellu:
chmod [permission] [path to file]
Další možností je použít chgrp
příkaz ke změně skupinového vlastnictví souboru:
chgrp [group ID] [path to file]
SFTP vám také umožňuje nastavit místní umask a změnit výchozí oprávnění pro všechny budoucí soubory přenesené do místního systému. Použijte lumask
příkaz k nastavení nového místního umask:
lumask [permission mask]
Správa souborů a adresářů
SFTP poskytuje možnosti, které uživatelům umožňují kontrolovat a spravovat soubory na místním systému i na vzdáleném serveru. ls
umožňuje vypsat seznam souborů a adresářů na vzdáleném serveru. Například:
ls -l

Podobně lls
(místní ls
) zobrazí seznam souborů a adresářů v místním systému:
lls -l

cd
a lcd
příkazy mění aktuální pracovní adresář na vzdáleném serveru nebo místním systému:
cd [path to directory on the remote server]
lcd [path to directory on the local system]
Pomocí příkazu mkdir vytvoříte na vzdáleném serveru adresář s cestou, kterou zadáte:
mkdir [path to the new directory on the remote server]
Například vytvoření Example_Directory v Domů adresář:
mkdir Example_Directory
mkdir
příkaz nemá žádný výstup, takže musíte použít ls
příkaz k ověření výsledku:

Podobně jako tento lmkdir
příkaz vytvoří adresář v místním systému:
lmkdir [path to the new directory on the local system]
Pomocí stejného příkladu:
lmkdir Example_Directory

rename
příkaz změní název souboru nebo adresáře na vzdáleném serveru:
rename [old path] [new path]
Například přejmenování example01.txt do sampledoc.txt :
rename example01.txt sampledoc.txt

Pomocí rm
příkaz odstraní soubor ze vzdáleného serveru:
rm [path to file]
Například odstranění souboru sampledoc.txt soubor:
rm sampledoc.txt

Podobně rmdir
příkaz odebere adresář ze vzdáleného serveru:
rmdir [path to directory]
Například odstranění Example_Directory :
rmdir Example_Directory

ln
a symlink
příkazy vytvoří symbolický odkaz na soubor nebo adresář na vzdáleném serveru:
ln [old path] [new path]
symlink [old path] [new path]
Například vytvoření odkazu na example02.txt s názvem example_link pomocí ln
příkaz:
ln example02.txt example_link

pwd
příkaz zobrazí aktuální pracovní adresář na vzdáleném serveru jako výstup:
pwd

Na druhé straně lpwd
příkaz vytvoří výstup, který ukazuje aktuální pracovní adresář v místním systému:
lpwd

Spouštění místních příkazů prostředí
SFTP umožňuje spouštět příkazy pomocí místního prostředí přidáním vykřičníku (! ) před příkazem. To umožňuje uživatelům spouštět příkazy, které nejsou součástí standardního shellu SFTP na místním systému.
SFTP například nepodporuje tree
příkaz v Linuxu. Pomocí místního shellu můžete spustit tento příkaz v rozhraní SFTP:
!tree

Pomocí vykřičníku (! ) bez příkazu dočasně přesune uživatele do lokálního shellu. Chcete-li se vrátit do prostředí SFTP, použijte exit
příkaz.

Další příkazy
Pomocí help
nebo ?
příkazy zobrazí text nápovědy pro rozhraní SFTP. Nápověda poskytuje seznam příkazů dostupných v prostředí SFTP.
version
zobrazí aktuální verzi nainstalovaného protokolu SFTP:

SFTP Cheat Sheet PDF
Níže naleznete jednostránkový referenční list obsahující všechny výše uvedené příkazy a možnosti SFTP. Uložte jej jako soubor PDF kliknutím na odkaz níže.
STÁHNOUT SFTP Cheat Sheet
