GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat a používat SSHFS na Linuxu

SSHFS (SSH File System) je implementace souborového systému v uživatelském prostoru (FUSE), který umožňuje klientům připojit vzdálený souborový systém přes SSH připojení. SSHFS používá protokol SSH File Transfer Protocol (SFTP) k připojení vzdáleného souborového systému ke klientskému počítači a spojení mezi klientem a serverem je zabezpečené a šifrované.

SSHFS lze použít jako alternativu k tradičnímu protokolu FTP. Ve výchozím nastavení je zabezpečený prostřednictvím připojení SSH a nejsou potřeba žádné další balíčky ani konfigurace. SSHFS pracuje s jednoduchou výchozí konfigurací SSH.

V tomto tutoriálu se naučíte, jak připojit vzdálený adresář bezpečným způsobem pomocí SSHFS mezi dva linuxové stroje (klient a server). Tato příručka také obsahuje, jak nastavit chroot na SSHFS, který zabrání uživatelům v přístupu k adresářům jiných uživatelů.

Předpoklady

Abyste mohli postupovat podle této příručky, budete potřebovat dva počítače se systémem Linux, klienta a server. Můžete použít libovolnou distribuci Linuxu a ujistěte se, že na serveru je nainstalován server OpenSSH a že máte uživatele bez oprávnění root s právy sudo root.

Instalace SSHFS do místního počítače

Ve výchozím nastavení SSHFS balíčky jsou dostupné ve většině distribucí Linuxu, včetně Debian/Ubuntu, RHEL/CentOS/Rocky a ArchLinux/Manjaro. Můžete jej snadno nainstalovat pomocí správce systémových balíčků. V této části nainstalujete SSHFS na místní/klientský počítač.

Nejprve aktualizujte svůj seznam indexů balíčků spuštěním následujícího příkazu.

# pro Debian/Ubuntu
aktualizace sudo apt

# pro RHEL/CentOS/RockyLinux
kontrolní aktualizace sudo dnf

# pro ArchLinux /Manjaro
sudo pacman -Syu

Po aktualizaci indexu balíčků nainstalujte balíček SSHFS pomocí správce balíčků, jak je uvedeno níže. V distribucích Debian a Archlinux je balíček pojmenován jako 'sshfs ', ale v distribuci založené na RHEL se balíček nazývá 'fuse-sshfs '.

# Pro Debian/Ubuntu
sudo apt nainstalujte sshfs

# Pro RHEL/CentOS/RockyLinux
sudo dnf nainstalujte fuse-sshfs

# Pro ArchLinux/Manjaro
sudo pacman -S sshfs

Nyní jste dokončili instalaci balíčku SSHFS na váš místní počítač. Dále se naučíte základní příkaz pro připojení a odpojení vzdáleného adresáře/oddílu k místnímu počítači pomocí příkazu SSHFS.

Základní:Připojení a odpojení pomocí SSHFS

Než začnete s příkazem SSHFS, ujistěte se, že máte linuxový server s nainstalovaným OpenSSH povoleným nad ním. Pro autentizaci uživatele na serveru můžete použít ověřování na základě hesla SSH nebo ověřování na základě klíče SSH. Můžete však vzít v úvahu použití ověřování pomocí klíče SSH, které je bezpečnější než ověřování pomocí hesla.

V této části se naučíte základní příkaz 'sshfs' pro připojení vzdáleného adresáře/oddílu ze serveru na místní/klientský počítač. Také se dozvíte, jak odpojit sshfs z místního počítače.

1. Základní příkaz 'sshfs ' pro připojení adresáře k místnímu počítači pomocí protokolu SSH je níže.

sshfs [e-mail chráněný]:/remote/directory /local/directory

V praxi připojte vzdálený adresář '/srv/data ' ze serveru '172.16.1.10 ' do adresáře místního počítače '~/data '. Tento příklad používá SSH uživatele 'johndoe'.

sshfs [e-mail chráněný]:/srv/data ~/data

Nyní budete vyzváni k ověření heslem, pokud pro své SSH používáte ověřování založené na hesle.

Pro ověření spusťte příkaz 'ls' do adresáře '~/data ' na místním počítači.

ls -lah ~/data

Zobrazí se seznam souborů ze vzdáleného serveru na vašem místním počítači.

2. Chcete-li nyní odpojit vzdálený adresář od místního počítače, spusťte příkaz 'fusermount ' jak je uvedeno níže. Tento příkaz se používá k připojení a odpojení souborových systémů FUSE.

fusermount -u ~/data

3. Další příklad 'sshfs ' příkaz, který by vás mohl zajímat.

Příkaz 'sshfs' s možností ladění '-d '. Kdykoli se dostanete do potíží s příkazem 'sshfs', použijte další možnost '-d' pro zobrazení všech ladicích zpráv při navazování připojení k serveru.

sshfs [e-mail chráněný]:/remote/directory /local/directory -d

Nyní, pokud provozujete server s nestandardním portem SSH, můžete přidat možnost '-p' následovaný vaším portem SSH.

sshfs [e-mail chráněný]:/remote/directory /local/directory -C -p 2222

Možnost '-C ' povolí kompresi, ekvivalentní volbě '-o komprese=ano' v příkazu ssh.

Pro úplnou referenci můžete použít volbu '--help' nebo pomocí manuálové stránky SSHFS.

sshfs --help
man sshfs

Nastavení Chrootu na SSHFS

V této části se dozvíte, jak povolit chroot na SSHFS, čehož lze dosáhnout konfigurací serveru SSH a určením uživatele a adresáře. Prostředí chroot omezí přístup k adresáři, ale váš uživatel může stále číst a zapisovat do adresáře mount.

1. Nejprve pro svého uživatele vytvoříte nový chroot adresář a povolíte přístup pro čtení a zápis. V této příručce vytvoříte nový sdílený adresář '/srv/shared' a poté vytvoříte nový domovský adresář a datový adresář pro každého uživatele.

Spuštěním následujícího příkazu vytvořte nový hlavní sdílený adresář '/srv/shared' a změnit vlastnictví na uživatele a skupinu 'root '.

mkdir -p /srv/shared
sudo chown -R root:root /srv/shared

2. Nyní vytvořte další adresář pro každého uživatele pod '/srv/shared' adresář. A nezapomeňte změnit vlastnictví tohoto adresáře na uživatele a skupinu 'root '.

mkdir -p /srv/shared/johndoe
sudo chown -R root:root /srv/shared/johndoe

3. Dále vytvořte 'data ' adresář v domovském adresáři uživatele '/srv/shared/johndoe '. Poté změňte vlastnictví tohoto adresáře na uživatele 'root “ a skupina „johndoe '. Nakonec povolte skupinu 'johndoe ' pro čtení a zápis do tohoto adresáře.

mkdir -p /srv/shared/johndoe/data
sudo chown -R root:johndoe /srv/shared/johndoe/data
sudo chmod g+rwx /srv/shared/johndoe/data

Nyní můžete připojit vzdálený adresář '/data ', ale je ekvivalentní adresáři '/srv/shared/johndoe/data' na serveru.

4. Po vytvoření chroot adresáře pro vašeho uživatele budete muset upravit konfiguraci SSH '/etc/ssh/sshd_config'. Upravte jej pomocí nano nebo vašeho oblíbeného textového editoru.

sudo nano /etc/ssh/sshd_config

Přidejte do souboru následující řádky.

Subsystém sftp internal-sftp
Match User johndoe
       ChrootDirectory /srv/shared/%u
       ForceCommand internal-sftp
       AllowTcpForwarding no   /> č. 1   >

Konfigurace 'internal-sftp ' umožní SSH fungovat také jako SFTP server. Poté definujte 'ChrootDirectory ' pro uživatele 'johndoe ' na '/srv/shared/%u ' adresář. '%u ' znamená jako uživatelské jméno.

Uložte a zavřete soubor.

5. Dále spusťte následující příkaz pro ověření konfigurace SSH a ujistěte se, že nedochází k chybám syntaxe. Poté restartujte službu SSH a použijte novou konfiguraci.

sudo sshd -t
sudo systemctl restart sshd

6. Nyní se vraťte na klientský/místní počítač a připojte vzdálený adresář do prostředí chroot. Měli byste použít adresář '/data' namísto adresáře s úplnou cestou '/srv/shared/johndoe/data'. A máte oprávnění číst, zapisovat a spouštět do adresáře 'data'.

sshfs [e-mail chráněný]:/data ~/data

Chcete-li ověřit přístup pro zápis, vytvořte na klientském počítači nový soubor pomocí následujícího příkazu.

cd ~/data
echo "Tento soubor z klientského počítače">> other-file.md

Nyní se vraťte na server a přejděte do adresáře '/srv/shared/johndoe/data ', zkontrolujte dostupný soubor v tomto adresáři.

cd /srv/shared/johndoe/data/
ls

cat other-file.md

Uvidíte soubor, který jste právě vytvořili z klientského počítače.

V této sekci jste vytvořili adresář chroot pro uživatele SSHFS a nakonfigurovali službu SSH pro povolení chroot.

Odstraňování problémů

Pokud se při připojení SSHFS zobrazí chyba, můžete potíže s připojením vyřešit pomocí následujících způsobů.

Můžete použít režim ladění s volbou '-d' . S touto volbou uvidíte protokoly vašeho připojení na vašem shellovém terminálu.

Spusťte 'sshfs ' s režimem ladění, jak je uvedeno níže.

sshfs [e-mail chráněný]:/data ~/mnt -d

Dalším způsobem, který můžete vyzkoušet, je zkontrolovat protokol SSH na vašem serveru. Před použitím příkazu 'sshfs' otevřete nový terminál a připojte se k serveru, poté spusťte 'tail ' ke kontrole služby protokolu SSH.

Na systému založeném na Ubuntu/Debianu je protokol SSH dostupný na adrese '/var/log/auth.log '. A pro systém založený na RHEL/CentOS je protokol SSH dostupný na adrese '/var/log/secure' .

# Pro Ubuntu/Debian
tail -f /var/log/auth.log

# Pro RHEL/CentOS
tail -f /var/log/secure

Závěr

gratuluji! Nyní jste se naučili, jak používat SSHFS k připojení vzdáleného adresáře ze serveru na váš místní počítač. Také jste se naučili, jak nastavit prostředí chroot na SSHFS a jak řešit problémy s připojením SSHFS.


Linux
  1. Co je příkaz Chown v Linuxu a jak jej používat

  2. Jak používat Su Command v Linuxu

  3. Jak nainstalovat a používat Flatpak v Linuxu

  1. Jak nainstalovat a používat příkaz fping na Linuxu

  2. Jak nainstalovat a používat Traceroute v Linuxu

  3. Jak nainstalovat a používat příkaz Ping v Linuxu

  1. Jak nainstalovat a používat telnet na Kali Linux

  2. Jak nainstalovat a používat Linux Screen?

  3. Linux Tail Command:Co to je a jak jej používat