Поиск по сайту:

Как смонтировать удалённую файловую систему или каталог Linux с использованием SSHFS через SSH


Главная цель написания этой статьи — предоставить пошаговое руководство по тому, как смонтировать удалённую файловую систему Linux с использованием клиента SSHFS через SSH.

Эта статья полезна для тех пользователей и системных администраторов, которые хотят подключить удалённую файловую систему к своим локальным системам для любых целей. Мы практически проверили это, установив клиент SSHFS на одну из наших систем Linux и успешно смонтировали удалённые файловые системы.

Прежде чем продолжить установку, давайте разберёмся с SSHFS и как он работает.

Монтирование удалённой файловой системы или каталога Linux через SSHFS

Что такое SSHFS?

SSHFS расшифровывается как (Secure SHell FileSystem) клиент, который позволяет монтировать удалённую файловую систему и взаимодействовать с удалёнными каталогами и файлами на локальной машине с использованием протокола передачи файлов по SSH (SFTP).

Рекомендуем к прочтению: 10 примеров команд sFTP для передачи файлов на удалённые серверы в Linux

SFTP — это защищённый протокол передачи файлов, который обеспечивает доступ к файлам, передачу файлов и функции управления файлами через протокол Secure Shell. Поскольку SSH использует шифрование при передаче файлов по сети с одного компьютера на другой, а SSHFS поставляется с встроенным модулем ядра FUSE (Файловая система в пространстве пользователя), который позволяет любым непривилегированным пользователям создавать свою файловую систему без изменения кода ядра.

В этой статье мы покажем вам, как установить и использовать клиент SSHFS на любой дистрибутив Linux для монтирования удаленной файловой системы или каталога Linux на локальную машину Linux.

Шаг 1: Установите клиент SSHFS в системах Linux

По умолчанию пакеты sshfs отсутствуют во всех крупных дистрибутивах Linux, вам нужно включить репозиторий epel в вашей системе Linux для установки sshfs с помощью команды Yum вместе с их зависимостями.

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

Шаг 2: Создание каталога для монтирования SSHFS

После установки пакета sshfs необходимо создать каталог точки монтирования, где вы будете монтировать вашу удалённую файловую систему. Например, мы создали каталог монтирования в /mnt/tecmint.

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

Шаг 3: Подключение удалённой файловой системы с помощью SSHFS

После того как вы создали каталог точки монтирования, теперь выполните следующую команду от имени пользователя style="color: red;">root, чтобы смонтировать удалённую файловую систему в /mnt/tecmint. В вашем случае каталог монтирования может быть любым.

Следующая команда смонтирует удалённый каталог с именем /home/tecmint в /mnt/tecmint на локальной системе. (Не забудьте заменить x.x.x.x на ваш IP-адрес и точку монтирования).

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

Если ваш сервер Linux настроен с использованием авторизации на основе SSH-ключей, то вам потребуется указать путь к вашим открытым ключам, как показано в следующей команде.

# 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]

Шаг 4: Проверка монтирования удалённой файловой системы

Если вы успешно выполнили приведённую выше команду без каких-либо ошибок, вы увидите список удалённых файлов и каталогов, смонтированных под /mnt/tecmint.

# cd /mnt/tecmint
# ls
[root@ tecmint]# 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

Шаг 5: Проверка точки монтирования с помощью команды df -hT

Если вы выполните команду df -hT, вы увидите точку монтирования удалённой файловой системы.

# 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

Рекомендуем к прочтению: 12 полезных команд «df» для проверки дискового пространства в Linux

Шаг 6: Постоянное подключение удалённой файловой системы

Чтобы постоянно монтировать удалённую файловую систему, необходимо отредактировать файл под названием /etc/fstab. Для этого откройте файл с помощью вашего любимого редактора.

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

Перейдите в конец файла и добавьте в него следующую строку, затем сохраните файл и выйдите. Ниже приведена запись для монтирования файловой системы удаленного сервера с настройками по умолчанию.

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

Убедитесь, что у вас настроен вход по SSH без пароля между серверами для автоматического монтирования файловой системы при перезагрузке системы.

Если ваш сервер настроен с использованием авторизации по ключу SSH, добавьте эту строку:

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

Далее вам нужно обновить файл fstab, чтобы отразить изменения.

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

Шаг 7: Отмонтирование удалённой файловой системы

Чтобы размонтировать удалённую файловую систему, выполните следующую команду, она размонтирует удалённую файловую систему.

# umount /mnt/tecmint

На этом пока всё. Если вы сталкиваетесь с какими-либо трудностями или нуждаетесь в помощи с монтированием удалённой файловой системы, пожалуйста, свяжитесь с нами через комментарии, а если вы считаете эту статью полезной, поделитесь ею с друзьями.