Како да користите SSHFS за монтирање далечински датотечни системи преку SSH


Вовед

Пренесување датотеки преку SSH конекција, со користење на која било NFS-приклучок, и двете од нив бараат дополнителни зависности и може да воведат безбедносни проблеми или други трошоци.

Како алтернатива, можете да инсталирате SSHFS за да монтирате далечински директориум користејќи само SSH. Ова има значајна предност што не бара дополнителна конфигурација и наследување дозволи од корисникот SSH на далечинскиот систем. SSHFS е особено корисен кога треба да читате од голем сет на датотеки интерактивно на индивидуална основа.

Предуслови

  • Два Linux сервери кои се конфигурирани да дозволуваат SSH пристап меѓу нив. Еден од нив може да биде локална машина наместо облак сервер. Можете да го постигнете ова со следење на нашиот првичен водич за поставување сервер, со директно поврзување од една машина на друга.

Чекор 1 - Инсталирање на SSHFS

SSHFS е достапен за повеќето дистрибуции на Linux. На Ubuntu, можете да го инсталирате користејќи apt.

Прво, користете apt update за да ги освежите изворите на пакетот:

  1. sudo apt update

Потоа, користете apt install за да го инсталирате пакетот sshfs.

  1. sudo apt install sshfs

Забелешка: SSHFS може да се инсталира на Mac или Windows преку употреба на библиотеки на датотечен систем наречени FUSE, кои обезбедуваат интероперабилност со околините на Linux. Тие ќе користат идентични концепти и детали за поврзување со ова упатство, но може да бараат од вас да користите различни конфигурациски интерфејси или да инсталирате библиотеки од трети страни. Ова упатство ќе го опфати SSHFS само на Linux, но треба да можете да ги прилагодите овие чекори на имплементациите на Mac или Windows FUSE.

Можете да инсталирате SSHFS за Windows од складиштето GitHub на проектот.

Можете да инсталирате SSHFS за Mac од проектот macFUSE.

Чекор 2 - Монтирање далечински датотечен систем

Секогаш кога монтирате оддалечен датотечен систем во околина на Linux, прво ви треба празен директориум за да го монтирате. Повеќето околини на Linux вклучуваат директориум наречен /mnt во кој можете да креирате поддиректориуми за оваа намена.

Забелешка: на Windows, далечните датотечни системи понекогаш се монтираат со сопствена буква на диск, како што е G:, а на Mac, тие обично се монтираат во /Volumes директориум.

Создадете поддиректориум во /mnt наречен droplet користејќи ја командата mkdir:

  1. sudo mkdir /mnt/droplet

Сега можете да монтирате далечински директориум користејќи sshfs.

  1. sudo sshfs -o allow_other,default_permissions sammy@your_other_server:~/ /mnt/droplet

Опциите на оваа команда се однесуваат на следниов начин:

  • -o претходи на различни опции за монтирање (ова е исто како кога се извршува командата mount нормално за монтирања на дискови што не се SSH). Во овој случај, го користите allow_other за да им дозволите на другите корисници да имаат пристап до ова монтирање (така да се однесува како нормално прицврстување на дискот, бидејќи sshfs стандардно го спречува ова) , и default_permissions (така што инаку користи редовни дозволи за датотечен систем).
  • sammy@your_other_server:~/ ја обезбедува целосната патека до далечинскиот директориум, вклучувајќи го далечинското корисничко име, sammy, далечинскиот сервер, your_other_server и патеката, во овој случај ~/ за домашниот директориум на оддалечениот корисник. Ова ја користи истата синтакса како SSH или SCP.
  • /mnt/droplet е патеката до локалниот директориум што се користи како точка за монтирање.

Ако примите порака Ресетирање на врската преку врсник, проверете дали сте го копирале вашиот SSH клуч на далечинскиот систем. sshfs користи обична SSH конекција во заднина и ако првпат се поврзувате со далечинскиот систем преку SSH, може да ви биде побарано да го прифатите отпечатокот од клучот на далечинскиот домаќин.

Output
The authenticity of host '164.90.133.64 (164.90.133.64)' can't be established. ED25519 key fingerprint is SHA256:05SYulMxeTDWFZtf3/ruDDm/3mmHkiTfAr+67FBC0+Q. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Забелешка: ако треба да монтирате оддалечен директориум користејќи SSHFS без да барате дозволи за sudo, можете да креирате корисничка група наречена fuse на вашата локална машина , со користење на sudo groupadd осигурувач, а потоа додавање на вашиот локален корисник во таа група, со користење на sudo usermod -a -G осигурувач sammy.

Можете да користите ls за да ги наведете датотеките во монтираниот директориум за да видите дали се совпаѓаат со содржината на оддалечениот директориум:

  1. ls /mnt/droplet
Output
remote_file1 remote_file2

Сега можете да работите со датотеки на вашиот далечински сервер како да е физички уред прикачен на вашата локална машина. На пример, ако креирате датотека во директориумот /mnt/droplet, датотеката ќе се појави на вашиот виртуелен сервер. Исто така, можете да копирате датотеки во или надвор од папката /mnt/droplet и тие ќе бидат поставени на или од вашиот оддалечен сервер во заднина.

Важно е да се забележи дека командата mount монтира само далечински диск за вашата тековна сесија. Ако виртуелниот сервер или локалната машина се исклучени или рестартирани, ќе треба да го користите истиот процес за повторно да го монтирате.

Ако повеќе не ви е потребна оваа монтажа, можете да ја одмонтирате со командата umount:

  1. sudo umount /mnt/droplet

Во последниот чекор, ќе поминете низ пример за конфигурирање на постојана монтажа.

Чекор 3 - Трајно монтирање на далечниот датотечен систем

Како и кај другите типови на дискови и мрежни монтирања, можете да конфигурирате постојана монтажа користејќи SSHFS. За да го направите ова, ќе треба да додадете конфигурациски запис во датотеката со име /etc/fstab, која се справува со прикачување на датотечниот систем на Linux при стартување.

Користејќи го nano или вашиот омилен текстуален уредувач, отворете го /etc/fstab:

  1. sudo nano /etc/fstab

На крајот од датотеката, додадете запис како овој:

sammy@your_other_server:~/ /mnt/droplet fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,identityfile=/home/sammy/.ssh/id_rsa,allow_other,default_permissions 0 0

Постојаните монтирања често бараат голем број различни опции како оваа за да се осигура дека тие се однесуваат како што се очекува. Тие работат на следниов начин:

  • sammy@your_other_server:~/ е повторно далечинска патека, исто како порано.
  • /mnt/droplet повторно е локалната патека.
  • fuse.sshfs го одредува двигателот што се користи за монтирање на овој далечински директориум.
  • noauto,x-systemd.automount,_netdev,reconnect се збир на опции кои работат заедно за да се осигури дека постојаните монтирања на мрежните дискови се однесуваат благодатно во случај мрежната врска да испадне од локалната машина или далечинската машина.
  • identityfile=/home/sammy/.ssh/id_rsa одредува патека до локалниот SSH клуч за да може далечинскиот директориум автоматски да се монтира. Забележете дека овој пример претпоставува дека и вашето локално и вашето далечинско корисничко име се sammy - ова се однесува на локалната патека. Неопходно е да се наведе ова бидејќи /etc/fstab ефикасно работи како root, и инаку не би знаел кое SSH конфигурации на корисничко име да се провери дали има клуч на кој му верува оддалечениот сервер.
  • allow_other,default_permissions користете ги истите дозволи од командата mount погоре.
  • 0 0 означува дека оддалечениот датотечен систем никогаш не треба да биде фрлен или потврден од локалната машина во случај на грешки. Овие опции може да бидат различни при монтирање на локален диск.

Зачувајте ја и затворете ја датотеката. Ако користите nano, притиснете Ctrl+X, потоа кога ќе биде побарано, Y и потоа ENTER. Потоа можете да ја тестирате конфигурацијата /etc/fstab со рестартирање на вашата локална машина, на пример со користење на sudo reboot now и потврдувајќи дека монтирањето е повторно создадено автоматски.

Треба да се забележи дека постојаните SSHFS монтирања не се нужно популарни. Природата на SSH конекциите и SSHFS значи дека обично е подобро прилагоден на привремени, еднократни решенија, кога не треба да се посветите на SMB или NFS приклучок што може да се конфигурира со поголем вишок и други опции. Сепак, SSHFS е многу флексибилен и што е уште поважно, делува како полноправно двигател на датотечен систем, кој ви овозможува да го конфигурирате во /etc/fstab како и секоја друга монтажа на дискот и да ја користите исто толку потребни. Внимавајте случајно да не изложите повеќе од далечинскиот датотечен систем преку SSH отколку што имате намера.

Заклучок

Во ова упатство, конфигуриравте SSHFS приклучок од една околина на Linux во друга. Иако не е најскалабилното или најизводливото решение за распоредување на производството, SSHFS може да биде многу корисен со минимална конфигурација.

Следно, можеби ќе сакате да научите за работата со складирање на објекти што може да се монтира истовремено на повеќе сервери.