Com muntar un directori o un sistema de fitxers Linux remot mitjançant SSHFS sobre SSH


L'objectiu principal d'escriure aquest article és proporcionar una guia pas a pas sobre com muntar un sistema de fitxers Linux remot mitjançant el client SSHFS a través de SSH.

Aquest article és útil per a aquells usuaris i administradors del sistema que volen muntar un sistema de fitxers remot als seus sistemes locals amb qualsevol finalitat. Pràcticament ho hem provat instal·lant el client SSHFS en un dels nostres sistemes Linux i hem muntat amb èxit sistemes de fitxers remots.

Abans de continuar amb la instal·lació, entenem sobre SSHFS i com funciona.

Què és SSHFS?

SSHFS significa client (Secure SHell FileSystem) que ens permet muntar un sistema de fitxers remot i interactuar amb directoris i fitxers remots en una màquina local mitjançant el protocol de transferència de fitxers SSH (SFTP).

SFTP és un protocol de transferència de fitxers segur que proporciona accés a fitxers, transferència de fitxers i funcions de gestió de fitxers mitjançant el protocol Secure Shell. Com que SSH utilitza el xifratge mentre transfereix fitxers a la xarxa d'un ordinador a un altre ordinador i SSHFS inclou el mòdul del nucli FUSE (Filesystem in Userspace) integrat que permet a qualsevol usuari sense privilegis crear el seu sistema de fitxers sense modificar el codi del nucli.

En aquest article, us mostrarem com instal·lar i utilitzar el client SSHFS a qualsevol distribució de Linux per muntar un directori o un sistema de fitxers Linux remot en una màquina Linux local.

Per defecte, els paquets sshfs no existeixen a totes les distribucions principals de Linux, heu d'habilitar el repositori epel als vostres sistemes Linux per instal·lar sshfs amb l'ajuda de l'ordre Yum amb les seves dependències.

# yum install sshfs
# dnf install sshfs              [On Fedora 22+ releases]
$ sudo apt-get install sshfs     [On Debian/Ubuntu based systems]

Un cop instal·lat el paquet sshfs, heu de crear un directori de punt de muntatge on muntareu el vostre sistema de fitxers remot. Per exemple, hem creat un directori de muntatge a /mnt/tecmint.

# mkdir /mnt/tecmint
$ sudo mkdir /mnt/tecmint     [On Debian/Ubuntu based systems]

Un cop hàgiu creat el vostre directori de punt de muntatge, ara executeu l'ordre següent com a usuari root per muntar el sistema de fitxers remot a /mnt/tecmint. En el vostre cas, el directori de muntatge seria qualsevol.

L'ordre següent muntarà el directori remot anomenat /home/tecmint sota /mnt/tecmint al sistema local. (No oblideu substituir x.x.x.x amb la vostra adreça IP i punt de muntatge).

# sshfs [email :/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other [email :/home/tecmint/ /mnt/tecmint     [On Debian/Ubuntu based systems]

Si el vostre servidor Linux està configurat amb autorització basada en clau SSH, haureu d'especificar el camí a les vostres claus públiques tal com es mostra a l'ordre següent.

# sshfs -o IdentityFile=~/.ssh/id_rsa [email :/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa [email :/home/tecmint/ /mnt/tecmint     [On Debian/Ubuntu based systems]

Si heu executat l'ordre anterior amb èxit sense cap error, veureu la llista de fitxers i directoris remots muntats a /mnt/tecmint.

# cd /mnt/tecmint
# ls
 ls
12345.jpg                       ffmpeg-php-0.6.0.tbz2                Linux                                           news-closeup.xsl     s3.jpg
cmslogs                         gmd-latest.sql.tar.bz2               Malware                                         newsletter1.html     sshdallow
epel-release-6-5.noarch.rpm     json-1.2.1                           movies_list.php                                 pollbeta.sql
ffmpeg-php-0.6.0                json-1.2.1.tgz                       my_next_artical_v2.php                          pollbeta.tar.bz2

Si executeu l'ordre df -hT, veureu el punt de muntatge del sistema de fitxers remot.

# df -hT
Filesystem                          Type        Size  Used Avail Use% Mounted on
udev                                devtmpfs    730M     0  730M   0% /dev
tmpfs                               tmpfs       150M  4.9M  145M   4% /run
/dev/sda1                           ext4         31G  5.5G   24G  19% /
tmpfs                               tmpfs       749M  216K  748M   1% /dev/shm
tmpfs                               tmpfs       5.0M  4.0K  5.0M   1% /run/lock
tmpfs                               tmpfs       749M     0  749M   0% /sys/fs/cgroup
tmpfs                               tmpfs       150M   44K  150M   1% /run/user/1000
[email :/home/tecmint fuse.sshfs  324G   55G  253G  18% /mnt/tecmint

Per muntar el sistema de fitxers remot de manera permanent, heu d'editar el fitxer anomenat /etc/fstab. Per fer-ho, obriu el fitxer amb el vostre editor preferit.

# vi /etc/fstab
$ sudo vi /etc/fstab     [On Debian/Ubuntu based systems]         

Aneu a la part inferior del fitxer i afegiu-hi la línia següent i deseu el fitxer i sortiu. L'entrada següent munta el sistema de fitxers del servidor remot amb la configuració predeterminada.

sshfs#[email :/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0

Assegureu-vos que teniu l'inici de sessió SSH sense contrasenya entre servidors per muntar automàticament el sistema de fitxers durant el reinici del sistema.

Si el vostre servidor està configurat amb autorització basada en clau SSH, afegiu aquesta línia:

sshfs#[email :/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0

A continuació, heu d'actualitzar el fitxer fstab per reflectir els canvis.

# mount -a
$ sudo mount -a   [On Debian/Ubuntu based systems]

Per desmuntar el sistema de fitxers remot, jun emet l'ordre següent: desmuntarà el sistema de fitxers remot.

# umount /mnt/tecmint

Això és tot per ara, si teniu alguna dificultat o necessiteu ajuda per muntar un sistema de fitxers remot, poseu-vos en contacte amb nosaltres mitjançant els comentaris i si creieu que aquest article és molt útil, compartiu-lo amb els vostres amics.