SSHFS

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page SSHFS and the translation is 100% complete.
Other languages:
Resources
This article has some todo items:
  • Add instructions for using SSHFS with more desktop environments.
  • Extra details would help.

SSHFS ( SSH F ile S ystem) egy biztonságos shell kliens, amelyet távoli fájlrendszerek helyi számítógépekre történő csatolására használnak. Az SSHFS a Filesystem in Userspace (FUSE) segítségével csatolja a fájlrendszereket egy könnyen elérhető helyre a felhasználók számára, és a fájlokhoz a SFTP protokollon keresztül fér hozzá.

Telepítés

Kernel

Mivel az SSHFS a FUSE-t használja, azt engedélyezni kell a kernelben.

KERNEL FUSE engedélyezése a kernelben
File systems  --->
   [*] FUSE (Filesystem in Userspace) support
Note
Amikor egy beépített (nem moduláris) funkciót vagy illesztőprogramot engedélyez a kernelben, ne feledje, hogy újbóli forráskódfordításra lesz szükség, és az újonnan lefordított kernelképfájlt be kell tölteni a memóriába (számítógép újraindítás), mielőtt a módosítások életbe lépnek. Ezt a lépést mielőtt továbblépne a cikk más szakaszaira, be kell fejezni.

USE jelölőzászlók

Jelenleg nincs elérhető USE jelölőzászló az SSHFS-hez.

Emerge

Használja az emerge parancsot, hogy megkérje Portage szoftvercsomag-kezelőt a net-fs/sshfs telepítésére.

root # emerge --ask net-fs/sshfs

Beállítás

Note
Ha már alapból működik, akkor ezt a részt nem szükséges alkalmazni.

Lehet, hogy a jogosultságokat be kell állítani, vagy a felcsatolás során előfordulhat a "fuse: failed to open /dev/fuse: Permission denied" hiba. Jobb, ha erre a szakaszra csak szükség esetén tér vissza.

Ha a fenti hiba előfordul, akkor először hozzon létre egy csoportot azok számára, akik használhatják az SSHFS-t, majd adja hozzá a csoporthoz azokat a felhasználói fiókokat, amelyek használni fogják.

root # groupadd crypto
root # usermod -aG crypto $USERNAME

Ha szükséges, akkor a felhasználót ki kell jelentkeztetni, majd újra be kell jelentkeztetni az új csoport jogosultságok alkalmazásához.

Most hozza létre az /etc/udev/rules.d/60-fuse.rules fájlt, és adja hozzá a következő tartalmat:

FILE /etc/udev/rules.d/60-fuse.rules
KERNEL=="fuse", NAME="%k", MODE="0666", GROUP="crypto"

Töltse be újra a fuse kernelmodult, hogy a módosítások érvénybe lépjenek:

root # modprobe -r fuse
root # modprobe fuse
root # ls -l /dev/fuse
crw-rw-rw- 1 root crypto 10, 229 Nov  8 22:29 /dev/fuse

Használat

Csatolás

Ahhoz, hogy az SSHFS-t használni lehessen, egy SSH szolgáltatásnak kell futnia a távoli számítógépen, az sftp alrendszert esetleg aktiválni kell, és legalább egy felhasználónak be kell lennie állítva, hogy SSH-n keresztül hozzáférjen a számítógéphez.

Ahhoz, hogy egy távoli fájlrendszert helyileg lehessen felcsatolni a fájlrendszerbe, megfelelő hitelesítő adatokra lesz szükség. Ha a parancssorban nincs megadva felhasználónév, akkor alapértelmezés szerint az aktuális felhasználónév kerül használatra. Például, ha az orbanviktor felhasználó jelenleg az aktív felhasználó az operációs rendszeren, és ezt a parancsot futtatják:

orbanviktor@example $ sshfs remotehost:/home/orbanviktor ~/remote_mount

Az orbanviktor felhasználónév elküldésre kerül a távoli operációs rendszernek, így szükség lesz az orbanviktor nevű távoli felhasználói fiókhoz tartozó hitelesítő adatokra. Miután megadja orbanviktor jelszavát, ez a parancs a orbanviktor felhasználó távoli saját könyvtárát csatolja a helyi számítógépen található ~/remote_mount könyvtárhoz. Az előző parancs ekvivalens ezzel a paranccsal:

orbanviktor@example $ sshfs orbanviktor@remotehost:/home/orbanviktor ~/remote_mount

A felhasználó megváltoztatásához írja a felhasználó nevét az IP-cím vagy a tartománynév elé. Például, ha a távoli operációs rendszerbe a root felhasználónévvel és jelszóval szeretne bejelentkezni, akkor használja a következő parancsot:

user $ sshfs root@remotehost:remotehost:/ ~/remote_mount

A root hozzáférést engedélyezni kell a szerveren ehhez.

Sudo

Ha egy felhasználó képes sudo parancsot futtatni a távoli host számítógépen egy másik felhasználóra váltva, akkor lehetséges lehet fájlok elérése azon a távoli host számítógépen az adott felhasználóként (ha a sudo parancs használata nem igényel jelszót). Például, ha egy felhasználó képes su paranccsal root jogosultságra váltani a távoli host számítógépen jelszó megadása nélkül, akkor csatolja fel az alábbi módon:

user $ sshfs -o sftp_server="/usr/bin/sudo /usr/lib64/misc/sftp-server" orbanviktor@remotehost:/útvonal/a/távoli/rendszerhez /útvonal/a/helyi/sshfs/csatoláshoz

Ezek az elérési utak egy alapértelmezett Gentoo telepítés esetén érvényesek a távoli host számítógépen, azonban ha a szerver más disztribúciót futtat, akkor módosítani kell őket.

Note
Ez nem feltétlenül biztonságos módja a szerver elérésének, ezért ajánlott az óvatosság.

Lecsatolás

Egy SSHFS-sel felcsatolt könyvtár leválasztásához használja a fusermount parancsot a -u opcióval:

orbanviktor@example $ fusermount -u /path/to/local/sshfs/mount

Engedélyeken alapuló beállítások

Ahhoz, hogy olvasási/írási hozzáférés legyen egy felcsatolt távoli könyvtárhoz, az allow_other és/vagy allow_root opciók lehetnek szükségesek, attól függően, hogy a felhasználó root vagy normál felhasználó. Egyszerűen engedélyezze az alábbi módon (root esetén cserélje le az allow_other opciót allow_root opcióra).

orbanviktor@example $ sshfs -o allow_other orbanviktor@remotehost:/útvonal/a/távoli/könyvtárhoz /útvonal/a/helyi/sshfs/csatolási_ponthoz

Alternatívaként a uid, gid és umask opciók is használhatók a jogosultságok finomhangolására. Több opció egyidejű beállításakor egyetlen -o után szóközzel elválasztott listát használjon.

CODE umask, uid, gid opciók
-o umask=M
    Fájl jogosultságainak a beállítása (oktális formában).

-o uid=N
    Fájl tulajdonosának a beállítása.

-o gid=N
    Fájl csoportjának a beállítása.
Note
Ezen opciók használata esetén hibaüzenet jelenhet meg: "fusermount3: option allow_other only allowed if 'user_allow_other' is set in /etc/fuse.conf" . Ebben az esetben egyszerűen kommentelje ki a "user_allow_other" sort az adott fájlban, majd próbálja újra.

Kapcsolat automatizálása

Azoknál a távoli fájlrendszereknél, amelyeket gyakran kell felcsatolni, a bejelentkezési folyamat automatizálható. Az automatizálás elérhető egy nyilvános/magán SSH kulcspár használatával, amelyet egy meghatározott eseményhez (például felhasználói bejelentkezéshez vagy bootoláshoz) társított mechanizmus segítségével lehet felcsatolni.

Az első lépés az SSH kulcspár beállítása a helyi és távoli gépeken. További utasításokért látogassa meg a Jelszó nélküli hitelesítés szekcióját az SSH cikkben az SSH kulcspár beállításához. Ha végzett, akkor térjen vissza ehhez a cikkhez.

Miután a kulcspár létre lett hozva és megfelelően be lett állítva, határozza meg, milyen esemény indítja el automatikusan a kapcsolatot. Gyakori, hogy egy rendszer felhasználói bejelentkezéskor vagy rendszerindításkor próbálja meg távolról felcsatolni a fájlrendszert. A sshfs csatolás kezelése attól függ, hogy a felhasználó milyen szoftvert alkalmaz a helyi környezetben. Többféle mód van ennek a feladatnak a kezelésére.

fstab

Az sshfs használható egy operációs rendszer /etc/fstab fájljában. Ez lehetővé teszi, hogy a hálózaton keresztül elérhető fájlrendszereket helyi fájlrendszer-csatolásként lehessen kezelni. Az sshfs fájlrendszerekhez kissé eltérő csatolási opciók szükségesek, ezért érdemes átnézni a man súgóoldalt, hogy az opciók megfelelőek legyenek minden esetben. Egy példa az sshfs használatára az fstab fájlban:

FILE /etc/fstab Az sshfs hozzáadása az fstab fájlhoz
# Automatically mount ~/Music on connection
sshfs#SERVER_USER@remotehost:/SOURCEDIR /home/USER/Music fuse user,_netdev,idmap=user,transform_symlinks,identityfile=/home/USER/.ssh/id_rsa,allow_other,default_permissions,uid=1000,gid=1000 0 0

Login shell-ek

A legtöbb shell támogatja a parancsok végrehajtását a felhasználói bejelentkezéskor vagy kijelentkezéskor. Ez a szekció példákat mutat be arra, hogy miként lehet automatizálni a kapcsolatot beépített shell-szkript segítségével.

Mielőtt folytatná, szükséges meghatározni, hogy melyik shell van használatban. Futtassa az alábbi parancsot az érintett felhasználóként, hogy kiderítse, vajon melyik shell van használatban:

user $ echo $SHELL

Lehetséges kimenet:

  • /bin/bash a bash számára.
  • /bin/sh az sh számára.
  • /bin/tcsh a tcsh és ( csh ) számára.
  • /bin/zsh a zsh számára.
Note
További információért az elérhető shellekről tekintse meg a Shell cikket.
Bash

Bash shell használata esetén hozzon létre egy ~/.bash_login és egy ~/.bash_logout fájlt a felhasználó saját könyvtárában, és adja hozzá az sshfs parancsot a fájlhoz.

user $ touch ~/.bash_login ~/.bash_logout

Felcsatolás a shell bejelentkezéskor:

FILE ~/.bash_login SSHFS csatolás hozzáadása a bash bejelentkezési shellhez
# Hozzáadva a távoli könyvtár csatolásához a felhasználói bejelentkezéskor.
sshfs orbanviktor@remotehost:/útvonal/a/távoli/könyvtárhoz /útvonal/a/helyi/sshfs/csatolási_ponthoz

"Leválasztás a shell kijelentkezéskor"

FILE ~/.bash_logout SSHFS leválasztás hozzáadása a bash kijelentkezési shellhez
# Hozzáadva a távoli könyvtár leválasztásához felhasználói kijelentkezéskor.
fusermount -u /útvonal/a/helyi/sshfs/csatolási_ponthoz
Sh
user $ touch ~/.profile
FILE ~/.profile SSHFS csatolás hozzáadása az sh bejelentkezési shellhez
# Hozzáadva a távoli könyvtár csatolásához felhasználói bejelentkezéskor.
sshfs orbanviktor@remotehost:/útvonal/a/távoli/könyvtárhoz /útvonal/a/helyi/sshfs/csatolási_ponthoz
Zsh
user $ touch ~/.zlogin
FILE ~/.zlogin SSHFS csatolás hozzáadása a zsh bejelentkezési shellhez
# Hozzáadva a távoli könyvtár csatolásához a felhasználói bejelentkezéskor.
sshfs orbanviktor@remotehost:/útvonal/a/távoli/könyvtárhoz /útvonal/a/helyi/sshfs/csatolási_ponthoz
Tcsh (Csh)
user $ touch ~/.login
FILE ~/.login SSHFS csatolás hozzáadása a tcsh vagy csh bejelentkezési shellhez
# Hozzáadva a távoli könyvtár csatolásához a felhasználói bejelentkezéskor.
sshfs orbanviktor@remotehost:/útvonal/a/távoli/könyvtárhoz /útvonal/a/helyi/sshfs/csatolási_ponthoz

Asztali környezetek

A legtöbb asztali környezet tartalmaz módszereket a szoftverek automatikus elindítására.

Openbox

Az Openbox az egyes felhasználók saját könyvtárában található autostart fájlt használja.

FILE ~/.config/openbox/autostart SSHFS csatolás hozzáadása az Openbox autostart fájlhoz
# Hozzáadva a távoli könyvtár csatolásához felhasználói bejelentkezéskor.
sshfs orbanviktor@remotehost:/útvonal/a/távoli/könyvtárhoz /útvonal/a/helyi/sshfs/csatolási_ponthoz &
Note
Fontos, hogy az Openbox autostart fájljában kiadott parancsok végén szerepeljen a & (ésjel).

További olvasnivaló a témában

  • CurlFtpFS — allows for mounting an FTP folder as a regular directory to the local directory tree.
  • SCP — an interactive file transfer program, similar to the copy command, that copies files over an encrypted SSH transport.
  • SSH — a mindenütt jelen lévő eszköz a távoli számítógépekre való biztonságos bejelentkezéshez és az azokon való munkavégzéshez.
  • SFTP — an interactive file transfer program, similar to FTP , which performs all operations over an encrypted SSH transport.

Külső források