Práce na vzdáleném adresáři, jako by to byl místní, je pohodlnější, souhlasíte? Co kdybyste mohli tyto soubory spravovat přímo, místo vzdáleného odesílání a stahování souborů pomocí SCP, SFTP nebo FTP? Naštěstí pro vás je držák SSHFS rychlým řešením tohoto dilematu.
Tento tutoriál vás naučí, jak používat připojení SSHFS, abyste měli přístup k obsahu vzdáleného adresáře na vašem místním počítači. Ať už používáte Windows nebo Linux, tento výukový program vám pomůže.
Konkrétní příklad použití v tomto kurzu ukazuje aktualizaci obsahu webu v adresáři připojeném SSHFS vzdáleného serveru. Obecný koncept by však měl platit pro vaši konkrétní situaci a není omezen pouze na webové servery.
Předpoklady
Tento tutoriál bude praktickou ukázkou. Pokud je chcete sledovat, ujistěte se, že máte následující:
- Linuxový webový server – Tento výukový program bude používat Fedora 35 s názvem
wbserver
s nainstalovaným Apache HTTP Serverem. Tento server obsahuje vzdálený adresář, který bude cílem připojení SSHFS. - Linuxový klient – Tento výukový program bude používat klienta Fedory 35 s názvem
fedora
. - Klient Windows (Windows 7 a vyšší) – Tento výukový program používá klienta Windows 10 s názvem
win10pc
.
Příprava vzdáleného adresáře
Tento tutoriál bude pracovat na vzdáleném adresáři na wbserver
server s názvem /var/www/html
. Ve výchozím nastavení má k této složce přístup pouze účet root. Protože nebudete používat kořenový účet serveru, musíte místo toho udělit určenému uživatelskému účtu oprávnění k adresáři.
V tomto příkladu je určený uživatelský účet pro připojení a přístup k připojení SSHFS adm1
. Podle níže uvedených kroků dejte adm1
správná oprávnění k /var/www/html
na wbserver
.
1. Přihlaste se do wbserver
pomocí preferovaného klienta SSH.
2. Dále spusťte níže uvedený příkaz a udělte uživateli adm1 plný přístup (rwx) ke složce /var/www/html.
sudo setfacl -m u:adm1:rwx /var/www/html
3. Nakonec potvrďte správnost oprávnění spuštěním příkazu níže.
sudo getfacl -a /var/www/html
Jak můžete vidět níže, adm1 má nyní přístup pro čtení/zápis do složky.
Použití připojení SSHFS v systému Linux
SSHFS je primárně linuxový nástroj a k připojení vzdáleného adresáře k vašemu počítači stačí zadat několik příkazů. Instalace balíčků pro povolení připojení SSHFS je stejně pohodlná jako instalace jiných balíčků v Linuxu prostřednictvím správce balíčků vašeho distribuce.
Instalace SSHFS a připojení vzdáleného adresáře
Při instalaci balíčku pro připojení SSHFS a připojení vzdáleného adresáře k místní cestě postupujte podle níže uvedených kroků.
1. Přihlaste se ke svému linuxovému klientovi přes SSH nebo Desktop, v závislosti na vašem prostředí.
2. Spusťte následující příkaz pro instalaci balíčku fuse-sshfs pomocí správce balíčků.
Poznámka:V distribucích Linuxu založených na Debianu je název balíčku sshfs.
sudo dnf install -y fuse-sshfs
Správce balíčků také nainstaluje závislosti, které na vašem počítači ještě nejsou. A protože velikost každého balíčku je menší než 100 kB, dokončení stahování a instalace trvalo jen několik sekund.
3. Dále vytvořte novou složku ve svém domovském adresáři s názvem mnt. Tato nová složka je přípojným bodem pro vzdálený adresář.
mkdir ~/mnt
4. Po vytvoření bodu připojení spusťte níže uvedený příkaz sshfs.
Tento příkaz připojí vzdálený adresář webového serveru (wbserver) (/var/www/html) k místnímu přípojnému bodu (~/mnt), který jste vytvořili při použití přihlašovacích údajů adm1 pro přístup.
sshfs [email protected]:/var/www/html ~/mnt
Pokud SSH server nenaslouchá výchozímu portu 22, musíte zadat přepínač -o port <číslo> pomocí příkazu sshfs. Pokud například vzdálený server naslouchá portu 2222, příkaz bude sshfs -o port 2222.
5. Pokud se k serveru připojujete poprvé, potvrďte the
připojení stisknutím Y
na výzvu – zadejte heslo účtu a stiskněte Enter
.
6. Nakonec potvrďte, že jste úspěšně připojili vzdálený adresář spuštěním příkazu níže.
findmnt
Měli byste vidět, že vzdálený adresář je nyní připojen k místnímu adresáři, který jste zadali.
Povolení automatického připojení při spouštění
I když jste úspěšně připojili vzdálený adresář, nezapomeňte, že tento stav připojení není trvalý. Restartování počítače automaticky nepřipojí vzdálený adresář.
Úpravou /etc/fstab
však můžete zajistit, aby připojení SSHFS přežilo restartování počítače a povolením autentizace na základě klíče pro adm1
účet. Povolení autentizace na základě klíče SSH zajistí, že připojení SSHFS bude plně automatické (žádné výzvy k zadání hesla).
1. Na klientovi Linux vygenerujte nový pár klíčů SSH spuštěním příkazu níže.
ssh-keygen
V souboru Enter, do kterého chcete uložit klíč, zadejte název souboru klíče a stiskněte Enter. V tomto příkladu je název souboru klíče k uložení /home/user1/.ssh/[email protected]
Ponechte heslo prázdné a dvakrát stiskněte Enter. Níže uvedený snímek obrazovky ukazuje výsledek vytvoření páru klíčů.
2. Nyní zkopírujte klíč na webový server. Níže uvedený příkaz nainstaluje klíč, který jste dříve vygenerovali (/home/user1/.ssh/[email protected]) do účtu adm1 na wbserver.
ssh-copy-id -i /home/user1/.ssh/[email protected] [email protected]
Na výzvu zadejte heslo pro [email protected] a stiskněte Enter. Jak můžete vidět níže, příkaz úspěšně nainstaloval klíč na server.
3. SSH do wbserver pomocí páru klíčů, aby bylo zajištěno, že přihlášení na základě klíče funguje.
ssh -i /home/user1/.ssh/[email protected] [email protected]
Výsledkem by mělo být úspěšné přihlášení bez požadavku na heslo. Napište exit a stiskněte Enter pro odhlášení z wbserveru.
4. Nyní, když jste nakonfigurovali ověřování pomocí klíče SSH pro uživatelský účet SSHFS, jste připraveni nakonfigurovat trvalé připojení SSHFS.
Otevřete soubor /etc/fstab v textovém editoru.
sudo nano /etc/fstab
5. Připojte níže uvedený kód na konec souboru /etc/fstab. Nezapomeňte změnit hodnotu identityfile=s cestou k souboru klíče SSH.
[email protected]:/var/www/html /home/user1/mnt fuse.sshfs identityfile=/home/user1/.ssh/[email protected],allow_other,_netdev 0 0
6. Po úpravách uložte soubor, zavřete textový editor a restartujte počítač. Jak můžete vidět níže, připojení SSHFS je po restartu opět dostupné.
Testování připojení SSHFS
Vzdálený adresář jste tedy připojili k místnímu počítači. Otázka nyní zní:"Funguje to?". Nejrychlejším testem pro potvrzení je vytvoření nového souboru a jeho uložení do přípojného bodu SSHFS. Soubor, který jste vytvořili, by se pak měl objevit na serveru.
Ve výchozím nastavení /var/www/html složka na webovém serveru je prázdná. Když vstoupíte na web hostovaný na https://wbserver , uvidíte pouze výchozí testovací stránku, jako je snímek obrazovky níže.
V tomto příkladu vytvoříte novou domovskou stránku a potvrdíte, že webový server tuto novou stránku zobrazuje.
1. Přepněte pracovní adresář na ~/mnt, bod připojení SSHFS.
cd ~/mnt
2. Provedením dotykového příkazu vytvořte soubor index.html a otevřete jej v textovém editoru.
touch index.html && nano index.html
3. Nyní naplňte soubor index.html níže uvedeným kódem HTML, uložte soubor a ukončete editor.
Welcome
I was put here over SSH by SSHFS
Snímek obrazovky níže ukazuje očekávaný obsah souboru index.html.
4. Nakonec znovu otevřete webovou adresu URL ve svém webovém prohlížeči. Webový server by měl vyzvednout a zobrazit novou domovskou stránku, jak můžete vidět níže.
Gratulujeme! Nyní jste úspěšně implementovali připojení SSHFS na vašem počítači se systémem Linux. K ručnímu provádění změn není nutné nahrávat nebo stahovat vzdálené soubory.
Odpojení vzdáleného adresáře
Předpokládejme, že již nepotřebujete přístup ke vzdálenému adresáři prostřednictvím připojení SSHFS a chcete jej odpojit, spusťte některý z níže uvedených příkazů.
Spusťte níže uvedený příkaz, pokud jste vzdálený adresář připojili interaktivně pomocí sshfs
nástroj.
fusermount -u /home/user1/mnt
Pokud jste automaticky připojili vzdálený adresář v fstab , místo toho spusťte níže uvedený příkaz. Kromě toho musíte odstranit položku automatického připojení SSHFS v fstab . Pokud ne, vzdálený adresář se po restartu znovu automaticky připojí.
sudo umount /home/user1/mnt
Použití připojení SSHFS v systému Windows
Počítače se systémem Windows mohou mapovat síťová umístění jako místní jednotky, jako jsou servery FTP, sdílené síťové položky a knihovny SharePoint. Budete rádi, když budete vědět, že můžete také přidat jednotky pro připojení SSHFS ve Windows instalací programu s názvem SSHFS-Win – port SSHFS v Linuxu.
Instalace WinFsp a SSHFS-Win
SSHFS-Win vyžaduje, aby WinFsp fungoval, protože poskytuje základní funkci FUSE. Při instalaci WinSfp i SSHFS-Win postupujte podle níže uvedených pokynů.
1. Otevřete prohlížeč na svém klientovi Windows a stáhněte si nejnovější verzi WinSfp (v1.10) a SSHFS-Win (v3.5.20357).
2. Vyhledejte stažené instalační programy a nejprve spusťte instalační program WinSfp.
3. Klikněte na Další na stránce Vítejte v průvodci instalací WinFsp 2022.
4. Vyberte všechny funkce a klikněte na Další.
5. Klikněte na Install na stránce Ready to install WinFsp 2022.
6. Po instalaci WinFsp klikněte na Finish.
7. Dále spusťte instalační program SSHFS-Win.
8. Klepnutím na tlačítko Další na první obrazovce, jak je znázorněno níže, zahájíte proces instalace.
9. Klepněte na Další na stránce Vlastní nastavení.
10. Na stránce Připraveno k instalaci SSHFS-Win klikněte na Instalovat.
11. Nakonec klepnutím na Finish (Dokončit) ukončete průvodce nastavením.
Porozumění Syntaxi cesty SSHFS
Před mapováním vzdáleného adresáře pomocí připojení SSHFS si prohlédněte níže uvedený seznam, abyste pochopili, jak SSHFS-Win interpretuje vzdálené cesty.
\\\\PREFIX\\[email protected][!PORT][\\PATH]
REMUSER
je vzdálený uživatel, jehož přihlašovací údaje použijete k ověření na vzdáleném serveru.HOST
je název hostitele nebo adresa IP vzdáleného serveru.PORT
je naslouchací port SSH vzdáleného serveru. Tato hodnota je volitelná a výchozí je port 22.PATH
je vzdálená cesta vzhledem kPREFIX
. Různé předpony jsou:sshfs
– mapuje na cestu relativní k domovskému adresáři uživatele (tj.HOST:~REMUSER/PATH
).sshfs.r
– mapuje na cestu relativní ke kořenovému adresáři hostitele (tj.HOST:/PATH
)sshfs.k
– mapuje na cestu relativní k domovskému adresáři uživatele (tj.HOST:~REMUSER/PATH
) a používá ověřování na základě klíče SSH. Tato předpona používá klíč v%USERPROFILE%/.ssh/id_rsa
pro ověření.sshfs.kr
– mapuje na cestu relativní ke kořenovému adresáři hostitele (tj.HOST:/PATH
) a používá klíč v%USERPROFILE%/.ssh/id_rsa
pro ověření.
Připojení a odpojení vzdáleného adresáře pomocí Průzkumníka souborů Windows
Jedním ze způsobů, jak namapovat síťovou jednotku ve Windows, je pomocí Průzkumníka souborů Windows. S touto metodou nemusíte spouštět žádné příkazy a každý krok provedete v GUI ve stylu průvodce.
1. Otevřete okno Průzkumník souborů, klikněte na Tento počítač —> Počítač —> Mapování síťové jednotky .
2. Vyberte písmeno jednotky a zadejte níže uvedenou cestu do pole Složka pro připojení složky \var\www\html.
\\sshfs.r\[email protected]\var\www\html
Ponechte zaškrtnutou možnost Znovu připojit při přihlášení a klikněte na Dokončit.
3. Zadejte heslo účtu, zaškrtněte políčko Zapamatovat si mě a klepněte na OK.
Nyní jste namapovali připojení SSHFS s písmenem jednotky. A protože jste povolili možnosti Znovu připojit při přihlášení a Zapamatovat si mě, systém Windows po restartování počítače znovu připojí připojení SSHFS.
4. V tomto okamžiku můžete nyní spravovat soubory ve vzdáleném adresáři. Pokud však již namapovanou jednotku nepotřebujete a chcete ji odebrat, klikněte pravým tlačítkem na připojení SSHFS a klikněte na Odpojit.
Připojení a odpojení vzdáleného adresáře pomocí příkazového řádku
Příkaz net use je dalším způsobem mapování vzdáleného adresáře ve Windows. Mapování SSHFS mount disků přes příkazový řádek je užitečné pro skriptování a automatizaci.
Chcete-li připojit vzdálený adresář, otevřete příkazový řádek nebo PowerShell a spusťte níže uvedený příkaz k mapování \\var\\www\\html
vzdálený adresář na disk místního počítače Z
. Nezapomeňte změnit PASSWORD
hodnotu s heslem vzdáleného uživatele.
net use Z: \\\\sshfs.r\\[email protected]\\var\\www\\html PASSWORD /user:adm1
Chcete-li odebrat připojovací jednotku SSHFS pomocí příkazového řádku, delete
mapování na jednotku Z:
spuštěním níže uvedeného příkazu.
net use Z: /delete
Testování připojení SSHFS
Nyní, když máte přístup k místně namapované síťové jednotce, můžete spravovat soubory ve vzdáleném adresáři jako jakékoli jiné místní soubory. V tomto příkladu aktualizujete domovskou stránku webu přímo z namapovaného disku SSHFS.
1. Otevřete Průzkumník souborů a přejděte na mapovanou jednotku.
2. Otevřete soubor s názvem index.html v textovém editoru, jako je Poznámkový blok. Pokud soubor neexistuje, nejprve jej vytvořte.
3. Zkopírujte níže uvedený kód HTML a vložte jej do souboru index.html a uložte soubor.
Welcome
I was put here over SSH by SSHFS
Brought to You from Windows 10
4. Nakonec otevřete webový prohlížeč a přejděte na adresu URL webu HTTP://wbserver . Nyní byste měli vidět aktualizovanou domovskou stránku, kterou jste upravili, potvrzující, že vaše připojení SSHFS funguje tak, jak bylo zamýšleno.
Závěr
Konečně jste se dostali na konec tohoto návodu. Naučili jste se používat připojení SSHFS k mapování adresářů na váš místní počítač se systémem Windows nebo Linux ze vzdáleného serveru SSH. SSHFS je vynikající nástroj pro pohodlí a zabezpečení vzdáleného přístupu k souborům.
Když už mluvíme o zabezpečení, možná byste se jako další krok měli podívat na Jak zabezpečit SSH pomocí Fail2Ban? Hodně štěstí!