Hogyan érhetünk el Windows számítógépről távoli Linux szervereken lévő SSH (SFTP) alapú fájlrendszereket

botond küldte be 2019. 02. 04., h – 13:45 időpontban

Tartalom

 

Bevezető

Ha weboldalakat üzemeltetünk vagy fejlesztünk, és otthon Windows rendszerű számítógépünk van, kényelmes lehet hogyha a gépünkről közvetlenül hozzáférhetünk a távoli tárhelyhez, hogy annak tartalmát kezelhessük külön FTP vagy SSH, stb csatlakozások nélkül.

Az egésznek az alapját és nagyszerűségét az adja, hogy ha rendelkezünk egy bármilyen Linux alapú számítógépen SSH hozzáféréssel (vagy akár egy SSH szervert futtató Windows gépen), akkor az SSH kapcsolat egyúttal biztosít egy SFTP csatornát is, ami ugyanazon a titkosított vonalon kínál FTP megoldást. Így ha a hozzáférésünk megvan, nem kell semmilyen további beállításokat végeznünk a szerver oldalon, hanem rögtön felkapcsolódhatunk bármilyen SFTP protokollt is támogató fájlátviteli programmal. Ilyen program például a közismert FileZilla fájlkezelő program is.

Azonban az ilyen programoknak a használata során mindig csatlakoznunk kell a célállomáshoz, és a fájlműveleteket is csak a program keretein belül végezhetjük.

Ezért ebben a rövid leírásban megnézünk egy sokkal kényelmesebb megoldást, ahol tartós módon, hálózati meghajtóként csatlakoztatjuk a távoli fájlrendszert, ami után az bármikor egyből hozzáférhetővé válik a teljes Windows rendszerünkben.

 

 

Hozzávalók

Ennek a megoldásnak a kivitelezéséhez két apró Windows alapú program szükséges:

Először töltsük le a GitHubról a WinFSP programot erről a linkről és telepítsük. Nálam éppen a winfsp-1.4.19016.msi változat érhető el ebben a pillanatban.

A program a FUSE API segítségével nyújt áthidalási megoldást a különböző operációs rendszerek fájlrendszerei között.

Ezután töltsük le, és telepítsük az SSHFS-Win programot a gépünk architektúrájának megfelelő változatában  szintén a GitHubról, amely lehetővé teszi az SSHFS fájlrendszerek kezelését a Windows alapú gépeken. Nálam ebből jelenleg a sshfs-win-2.7.17334-x64.msi érhető el a 64 bites változatban.

Frissítés (2023-03-31)
A leírás készítése óta eltelt már sok idő, ezért ismét ellenőriztem ezeket a programokat. A WinFsp-ből már a 2023-as változat van, az SSHFS-Win programból pedig a stabil ágból jelenleg a 2021-es, de bétában már elérhető a 2021.1 Beta2 kiadás is. Az alábbi részben ezeknek a telepítéséből teszek be képeket.

WinFsp

WinFsp telepítés

WinFsp telepítés

Amint láthatjuk, ez a változat már tartalmaz fejlesztői eszközöket is, valamint a Cygwin-hez is ad FUSE fájlrendszer támogatást.

WinFsp telepítés

WinFsp telepítés

SSHFS-Win

SSHFS-Win telepítés

SSHFS-Win telepítés

SSHFS-Win telepítés

SSHFS-Win telepítés

 

Távoli SSHFS fájlrendszer felcsatolása

Ha a két programot feltelepítettük, akkor egy távoli SSHFS fájlrendszer felcsatolása már gyerekjáték. Nyissuk meg a Windows gépünkön a Start menü - Számítógép menüpontját. Majd az ablak bal felén lévő Számítógép csoport tételre jobb egérgombbal kattintva előjön egy menü, ebben válasszuk ki a "Hálózati meghajtó csatlakoztatása..." menüpontot. Ekkor bejön a beállítópanel:

Windows 7 - Hálózati meghajtó csatlakoztatása

A Meghajtó utáni legördülőben válasszuk ki a betűjelet, amelyikről a továbbiakban el szeretnénk érni ezt a fájlrendszert a Windowsból.

A Mappa résznél pedig ezt a formátumot használjuk:

\\SSHFS\felhasznalo@kiszolgalo

Az elején jelezzük a rendszernek, hogy egy az újfent támogatott SSHFS fájlrendszert szeretnénk beállítani. A felhasználó és a kiszolgáló pedig annak a számítógépnek a hozzáférése, ahol az SSH hozzáférésünk van.

A "Bejelentkezéskor újracsatlakozás" opciót beállítva a gépünk újraindítása után automatikusan újra felcsatolja a távoli fájlrendszert, így az teljesen úgy használható, mintha egy helyi meghajtó lenne, feltételezve, hogy a távoli gép folyamatosan elérhető állapotban van.

A "Csatlakozás különböző hitelesítő adatokkal" beállítás pedig arra szolgál, hogy ha a távoli gépen más felhasználónévvel és jelszóval rendelkezünk, mint a helyi gépen, akkor ezzel lehet jelezni a rendszernek, hogy ne a Windows bejelentkezési adatunkat használja fel a gép a csatlakozáskor.

A panel Befejezés gombjára kattintva előjön a beléptető kisablak, ahol megadjuk a felhasználónevet (amit már előre ki is tölt) és hozzá a jelszót. Itt meg is jegyeztethetjük a bejelentkezési adatokat is, és akkor utána már nem fog rákérdezni.

Sikeres csatlakozás esetén pedig meg is nyílik az SSH hozzáférésünk home könyvtárszerkezete:

Windows 7 - SSHFS távoli fájlrendszer felcsatolt állapotban

Itt a Debian 9-es laptopom SSH fájlrendszerét állítottam be. Bal oldalon is látható, hogy a rendszer perzisztens módon rögzítette a hálózati meghajtót, ami innentől kezdve bármelyik programból elérhető, pl. Total Commander, egyéb fájlkezelők, DOS parancssor, stb.

Egyedi SSH portszám használata

Ha a szerver SSH kiszolgálóját nem a szabványos 22-es SSH porton lehet elérni, hanem egyedi port beállítással rendelkezik, akkor fűzzük a kiszolgáló neve után egy felkiáltójellel tagolva. Ilyenkor tehát így néz ki a szintaxis:

\\SSHFS\felhasznalo@kiszolgalo!port

Egyedi elérési útvonal használata

Alapértelmezetten az SSH protokoll - így az SSHFS-Win program is - a felhasználó home könyvtárába léptet be, tehát a felcsatolt hálózati meghajtónk is ez a könyvtár lesz. De mi van, ha mi nem a home könyvtárunkat szeretnénk felcsatlakoztatni, hanem egy másik könyvtárat, legyen az a home könyvtárszerkezeten belül, vagy azon kívül. Az SSHFS-Win program segítségével ez sem probléma, lássunk két példát erre.

Ha a home könyvtáron belül szeretnénk egy alkönyvtárat felcsatolni, akkor a szintaxis a következő:

\\SSHFS\felhasznalo@kiszolgalo\alkonyvtar\stb

A lényeg tehát, hogy az SSHFS-Win program relatív útvonalakat támogat, tehát eltérő módon kezeli az útvonalakat, mint sok másik program, ami a kiszolgáló gyökér könyvtárától indul ki. Itt tehát a felhasználó home könyvtára a kiindulási pont. Ennek megfelelően, ha pedig egy olyan könyvtárat szeretnénk felcsatolni, ami a felhasználó home könyvtárán kívül van, akkor az alábbi szintaxist használjuk:

\\SSHFS\felhasznalo@kiszolgalo\..\..\mnt\stb

Ebben a példában a szerveren lévő /mnt/stb könyvtárat csatoljuk fel. Ehhez hasonlóan természetesen bármilyen könyvtár beállítható, a lényeg, hogy a felhasználónak legyen ott legalább olvasási jogosultsága. Itt ugye a /home/<felhasználó> (Linux home könyvtárszerkezet) miatt kellett duplán visszalépnünk, hogy elérjük a szerver gyökér könyvtárát.

Ne keverjük össze a Linux és Windows rendszereken használt útvonal jelöléseket sem! A Linux a "/" jeleket használja a könyvtárstruktúra jelölésére, míg a Windows a "\" jeleket. Ennek megfelelően az SSHFS-Win program is a Windows könyvtárjelöléseket alkalmazza, tehát mi is a "\" jelekkel adjunk meg útvonalat, amennyiben - a home könyvtárunktól eltérő - egyedi útvonalat szeretnénk használni.

Egyedi SSH portszám és elérési útvonal használata

Végül pedig ha kombinálni szeretnénk a dolgokat, tehát egyedi portszámot és útvonalat is szeretnénk használni, akkor csak össze kell fűznünk a korábbiakat:

\\SSHFS\felhasznalo@kiszolgalo!port\relativ\eleresi\ut

Természetesen ebben az esetben is ugyanúgy működik az útvonal kezelése, ha a szerver gyökértől kiindulva szeretnénk útvonalat meghatározni, akkor a relatív címzés szabályainak megfelelően lépjünk vissza amennyit szükséges a "..\" könyvtár váltással. Persze az útvonal mindig "\" jellel kezdődik, de itt ez nem abszolút elérést jelent, hanem csak a szintaktika része. Ha nem adjuk meg, akkor hozzáférési hibát fog dobni.

 

Meghajtó leválasztása

Ha már nincs szükségünk a távoli fájlrendszerre, akkor egyszerűen bonthatjuk a kapcsolatot: Jobb egérgombbal kattintsunk a panel bal oldalán lévő hálózati meghajtó hivatkozására, majd az előugró menüben kattintsunk a "Kapcsolat bontása" opcióra. Ekkor a rendszer leválasztja a meghajtót, és a kapcsolat lezárul.

Ilyenkor természetesen előtte mentsünk le és zárjunk be minden munkát, amit a távoli meghajtóról nyitottunk meg, hogy ne vesszenek el a mentetlen adatok.

 

Konklúzió

Ezzel a roppant egyszerű kis megoldással tehát gyorsan és kényelmesen tudunk csatlakoztatni és használni távoli SSHFS fájlrendszereket. Természetesen léteznek még más adatátviteli módszerek is amik megosztás alapon működnek, ilyenek például a Samba vagy az NFS megosztások. De ezek már bonyolultabb beállításokat igényelnek.