Úvod
SFTP (Safe File Transfer Protocol) je součástí spolu s SSH jako bezpečný způsob přenosu souborů mezi vzdálenými systémy. Umožňuje také uživatelům provádět základní administrativní úlohy na vzdálených serverech, jako je správa souborů a adresářů a nastavení oprávnění k souborům.
V tomto tutoriálu vám ukážeme, jak používat SFTP k přenosu souborů mezi místním a vzdáleným systémem pomocí terminálového rozhraní.

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.
Jak se připojit pomocí SFTP
SFTP vytváří zabezpečené spojení mezi systémy pomocí síťového protokolu SSH. To vám umožní připojit se k jakémukoli systému, který má kopii vašeho veřejného klíče SSH.
Připojení k jinému systému pomocí SFTP se řídí stejnou syntaxí příkazů jako připojení pomocí SSH. Příkaz vyžaduje, abyste zadali uživatelské jméno a název vzdáleného hostitele nebo IP adresu pro systém, ke kterému chcete přistupovat:
sftp [username]@[remote hostname or IP address]
V níže uvedeném příkladu se připojujeme k systému s IP adresou 192.168.100.5 pomocí phoenixnap uživatelské jméno:
sftp [email protected]

Chcete-li ukončit aktuální připojení, použijte:
exit
Jak přenášet soubory pomocí SFTP
Použití SFTP vám umožňuje přenášet soubory ze vzdáleného serveru do místního systému a naopak.
Přenos vzdálených souborů do místního systému
Použijte get
příkaz v rozhraní SFTP pro přenos souboru ze vzdáleného serveru do vašeho místního systému:
get [path to file]
Chcete-li například přenést soubor s názvem example_document.txt z domovské stránky vzdáleného systému adresáře do místního systému, použijte:
get example_document.txt

Ve výchozím nastavení SFTP přenáší soubory do Domů místního systému adresář. Chcete-li přenést soubory do jiného adresáře, přidejte cestu k adresáři na konec get
příkaz:
get example_document.txt Downloads

Chcete-li změnit název souboru v místním systému, přidejte nový název souboru na konec get
příkaz.
get example_document.txt sample01.txt

Ve výše uvedeném příkladu get
příkaz načte example_document.txt soubor a uloží jej jako sample01.txt v místním systému.
SFTP také umožňuje přenos celého adresáře ze vzdáleného systému pomocí -r
příznak označující rekurzivní přenos všech souborů v adresáři:
get -r Example_Directory

Přidejte -P
příznak do get
příkaz k přenosu souboru nebo adresáře při zachování oprávnění a přístupových časů:
get -Pr Example_Directory
Použijte ls
příkaz k ověření přenosu do místního systému:
ls -l

Přenos místních souborů na vzdálený server
Chcete-li přenést soubory z místního systému na vzdálený server, použijte put
příkaz. put
příkaz používá stejnou syntaxi a možnosti jako get
příkaz.
put [path to file]
Chcete-li například přenést soubor example01.txt soubor na vzdálený server, použijte:
put example01.txt

Chcete-li přenést soubor do konkrétního adresáře na vzdáleném serveru, přidejte cestu k adresáři na konec put
příkaz.
put example01.txt Example_Directory

Přidání nového souboru na konec put
příkaz změní název přenášeného souboru na vzdáleném serveru.
put example01.txt text_sample.txt

Přenos celého adresáře vyžaduje -r
vlajka.
put -r Test_Directory

Přidejte -P
příznak do put
příkaz pro zachování oprávnění k souboru:
put -Pr Test_Directory
Ověřte přenos souboru pomocí ls
příkaz na vzdáleném systému:

Údržba souborů pomocí SFTP
SFTP podporuje základní údržbu souborů. Pomocí protokolu SFTP můžete například upravit oprávnění k souborům a adresářům ve vzdáleném systému.
chown
příkaz změní vlastnictví souboru podobně jako příkaz chmod:
chown [user ID] [path to file]
Na rozdíl od chmod
příkaz, chown
přijímá pouze uživatelská ID, nikoli uživatelská jména. Nalezení UID pro vzdálený server pomocí rozhraní SFTP vyžaduje přenos a přístup k /etc/passwd soubor:
get /etc/passwd
!less passwd
UID pro každého uživatele lze nalézt ve třetím sloupci oddělené dvojtečkami:

chmod
příkaz funguje stejně jako ve standardním shellu:
chmod [permission] [path to file]
Další možností je změnit vlastnictví skupinového souboru pomocí chgrp
příkaz:
chgrp [group ID] [path to file]
Stejně jako u UID se ID skupiny nacházejí ve třetím sloupci souboru /etc/group soubor na vzdáleném serveru:
get /etc/group
!less group

SFTP vám umožňuje nastavit místní umask, který změní výchozí oprávnění k souborům přenášeným do místního systému.
Například:
lumask 022
Výše uvedený příkaz změní místní umask na 022 . Každý soubor přenesený po nastavení této umask má nyní 644 povolení ve výchozím nastavení. Původní oprávnění můžete stále zachovat pomocí -p
vlajka.
Dalším způsobem, jak změnit oprávnění k místním souborům, je použít SFTP k replikaci chování příkazů shellu. Chcete-li to provést, přidejte vykřičník (! ) před názvem příkazu.
Například pomocí chmod
příkaz v místním systému:
!chmod [permission] [path to file]