SFTP (SSH File Transfer Protocol) je zabezpečený souborový protokol, který se používá k přístupu, správě a přenosu souborů přes šifrovaný přenos SSH.
Ve srovnání s tradičním protokolem FTP nabízí SFTP všechny funkce FTP, ale je bezpečnější a snadněji konfigurovatelný.
Na rozdíl od SCP, které podporuje pouze přenosy souborů, vám SFTP umožňuje provádět řadu operací se vzdálenými soubory a obnovit přenos souborů.
V tomto tutoriálu vám ukážeme, jak používat Linux sftp
příkaz.
Než začnete #
Abyste mohli přenášet soubory přes SFTP, musíte mít na vzdáleném systému oprávnění k zápisu.
Při přenosu velkých souborů se doporučuje spustit sftp
příkaz uvnitř obrazovky nebo tmuxsession.
Adresář, ze kterého spouštíte sftp
příkaz je místní pracovní adresář.
Navazování připojení SFTP #
SFTP funguje na modelu klient-server. Je to subsystém SSH a podporuje všechny mechanismy ověřování SSH.
Chcete-li otevřít připojení SFTP ke vzdálenému systému, použijte sftp
za ním následuje uživatelské jméno vzdáleného serveru a IP adresa nebo název domény:
sftp remote_username@server_ip_or_hostname
Pokud se připojujete k hostiteli pomocí ověřování heslem, budete vyzváni k zadání hesla uživatele.
Po připojení se vám zobrazí sftp
a můžete začít komunikovat se vzdáleným serverem:
Connected to remote_username@server_ip_or_hostname.
sftp>
Pokud vzdálený server SSH nenaslouchá na výchozím portu 22, použijte -P
možnost zadat port SFTP:
sftp -P custom_port remote_username@server_ip_or_hostname
Příkazy SFTP #
Většina příkazů SFTP je podobná nebo identická s příkazy prostředí Linux.
Chcete-li získat seznam všech dostupných příkazů SFTP, zadejte help
, nebo ?
.
help
Tím se zobrazí dlouhý seznam všech dostupných příkazů, včetně krátkého popisu každého příkazu:
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
...
...
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
Navigace pomocí SFTP #
Když jste přihlášeni ke vzdálenému serveru, váš aktuální pracovní adresář je domovským adresářem vzdáleného uživatele. Můžete to zkontrolovat zadáním:
pwd
Remote working directory: /home/remote_username
Chcete-li zobrazit seznam souborů a adresářů, použijte ls
příkaz:
ls
Chcete-li přejít do jiného adresáře, použijte cd
příkaz. Například pro přepnutí na /tmp
adresář, který byste zadali:
cd /tmp
Výše uvedené příkazy se používají k navigaci a práci na vzdáleném místě.
SFTP shell také poskytuje příkazy pro místní navigaci, správu informací a souborů. Místní příkazy mají předponu l
.
Chcete-li například vytisknout místní pracovní adresář, zadejte:
cd lpwd
Local working directory: /home/local_username
Přenos souborů pomocí SFTP #
SFTP vám umožňuje bezpečně přenášet soubory mezi dvěma počítači.
Pokud pracujete na stolním počítači, můžete použít GUI SFTP klienta, jako je WinSC nebo FileZillato připojit se ke vzdálenému serveru a stahovat nebo nahrávat soubory.
sftp
je užitečný, když pracujete na serveru bez GUI a chcete přenášet soubory nebo provádět jiné operace se vzdálenými soubory.
Stahování souborů pomocí příkazu SFTP #
Chcete-li stáhnout jeden soubor ze vzdáleného serveru, použijte get
příkaz:
get filename.zip
Výstup by měl vypadat nějak takto:
Fetching /home/remote_username/filename.zip to filename.zip
/home/remote_username/filename.zip 100% 24MB 1.8MB/s 00:13
Při stahování souborů pomocí sftp
, soubory se stáhnou do adresáře, ze kterého jste zadali sftp
příkaz.
Pokud chcete stažený soubor uložit pod jiným názvem, zadejte nový název jako druhý argument:
get filename.zip local_filename.zip
Chcete-li stáhnout adresář ze vzdáleného systému, použijte rekurzivní -r
možnost:
get -r remote_directory
Pokud se přenos souboru nezdaří nebo je přerušen, můžete jej obnovit pomocí reget
příkaz.
Syntaxe reget
je stejná jako syntaxe get
:
reget filename.zip
Nahrávání souborů pomocí příkazu SFTP #
Chcete-li nahrát soubor z místního počítače na vzdálený server SFTP, použijte put
příkaz:
put filename.zip
Výstup by měl vypadat nějak takto:
Uploading filename.zip to /home/remote_username/filename.zip
filename.zip 100% 12MB 1.7MB/s 00:06
Pokud se soubor, který chcete nahrát, nenachází ve vašem aktuálním pracovním adresáři, použijte absolutní cestu k souboru.
Při práci s put
můžete použít stejné možnosti, které jsou dostupné u get
příkaz.
Chcete-li nahrát místní adresář, zadejte:
put -r locale_directory
Obnovení přerušeného nahrávání:
reput filename.zip
Manipulace se soubory pomocí SFTP #
Pro provádění úloh na vzdáleném serveru byste se k němu obvykle připojili přes SSH a svou práci prováděli pomocí shellového terminálu. V některých situacích však může mít uživatel pouze SFTP přístup ke vzdálenému serveru.
SFTP umožňuje provádět některé základní příkazy pro manipulaci se soubory. Níže je uvedeno několik příkladů, jak používat SFTP shell:
-
Získejte informace o využití disku vzdáleného systému:
df
Size Used Avail (root) %Capacity 20616252 1548776 18002580 19067476 7%
-
Vytvořte nový adresář na vzdáleném serveru:
mkdir directory_name
-
Přejmenujte soubor na vzdáleném serveru:
rename file_name new_file_name
-
Odstranění souboru na vzdáleném serveru:
rm file_name
-
Odstraňte adresář na vzdáleném serveru:
rmdir directory_name
-
Změňte oprávnění souboru ve vzdáleném systému:
chmod 644 file_name
-
Změna vlastníka souboru ve vzdáleném systému:
chown user_id file_name
Do
chown
musíte zadat ID uživatele achgrp
příkazy. -
Změňte vlastníka skupiny vzdáleného souboru pomocí:
chgrp group_id file_name
Až budete s prací hotovi, ukončete připojení zadáním bye
nebo quit
.
Závěr č.
V tomto tutoriálu jsme vám ukázali, jak používat sftp
příkaz ke stažení a nahrání souborů na váš vzdálený server SFTP.
Můžete také chtít nastavit ověřování na základě klíče SSH a připojit se k serverům Linux bez zadávání hesla. Pokud se pravidelně připojujete ke stejným systémům, můžete si zjednodušit pracovní postup tím, že všechna svá připojení definujete v konfiguračním souboru SSH.
Pokud máte nějaké dotazy nebo zpětnou vazbu, můžete zanechat komentář.