Связаться по:
vkarabedyants Telegram Viber
+7 (499) 350-10-69

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Как монтировать удаленные директории с SSHFS на Linux

Как подключить удаленный каталог по SSH в системе ОСLinux? Как использовать SSHFS для монтирования удаленные файловые системы через SSH в системе Ubuntu или Debian / RHEL / CentOS / Arch Linux?
SSH является безопасным протоколом, и вы можете использовать его, чтобы смонтировать каталог на удаленном сервере или локальной ноутбук с помощью сервиса SSHF. С SSHFS вы можете смонтировать удаленную файловую систему сервера на локальный с ОС Linux.

Подробнее о SSHFS

SSHFS является файловая система на основе протокола передачи SSH файла. Она устанавливается на клиентской системе, её необходимо установить на локальном компьютере / ноутбуке ОС CentOS / RHEL / Ubuntu / Debian / Arch Linux. Нет необходимости устанавливать что-либо на сервере (server1.cyberciti.biz). Вам нужно всего лишь OpenSSH сервер, установленный на стороне сервера. Пример:

SShfs install

 

Установка SSHFS на Ubuntu / Debian / Mint Linux

Введите следующую команду APT-GET:

sudo apt-get install sshfs

Установка SSHFS на Arch Linux

Введите следующую команду:

sudo pacman -S sshfs fuse

Установка SSHFS на RHEL (Red Hat) / CentOS Linux

Во-первых, включить репозиторий Epel, а затем введите следующую yum команду, чтобы установить файловую систему FUSE  для доступа удаленных файловых систем с помощью SSH на CentOS / RHEL:

sudo yum install fuse-sshfs

Как смонтировать удаленную файловую систему?

Синтаксис:

sshfs [email protected] /path/to/mountpoint
sshfs [email protected] /path/to/mountpoint options

Во-первых, необходимо создать каталог с помощью MKDIR команды:

sudo mkdir /mnt/server1

Я собираюсь установить файловую систему, используя root, понадобится ввести пароль root при запросе:

sudo sshfs [email protected]:/ /mnt/server1/

##  OR use ssh key based login ##
sudo sshfs -o IdentityFile=~/.ssh/keyfile /mnt/server1/

Проверим монтирование:

sudo df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/wks05-root  487G  114G  350G  25% /
none                    4.1k     0  4.1k   0% /sys/fs/cgroup
udev                     17G  4.1k   17G   1% /dev
tmpfs                   3.4G  1.9M  3.4G   1% /run
/dev/sda1               239M   89M  138M  40% /boot
[email protected]:/     20G   12G  6.8G  64% /mnt/server1

Для доступа и / или просмотра удаленной файловой системы, выполните:

sudo -s
cd /mnt/server1
ls -l

Пример вывода:

sshfs-ls-outputs

 

Работа с ошибками «Отказано в доступе», и процедура мониторинга удаленного каталога

Если вы получаете сообщение об ошибке, при чтении: не может получить доступ к server1: Отказано в доступе (Permission denied), добавьте себя в группу под названием fuse:

$ sudo gpasswd -a "$USER" fuse
Adding user nixcraft to group fuse

Затем создайте точку монтирования внутри вашего собственного домашнего каталога:

$ mkdir $HOME/server1
$ ls -ld !$
ls -ld $HOME/server1
drwxrwxr-x 2 nixcraft nixcraft 4096 Mar  8 04:34 /home/nixcraft/server1

Для монтирования удаленной файловой системы, введите:

 sshfs -o idmap=user  [email protected]:/ $HOME/server1
df
ls -l $HOME/server1

sshfs-local-user-mount-command-wihout-root-access

 

Как отмонтировать удаленную файловую систему?

Синтаксис:

sudo umount /mnt/server1

## или ##
fusermount -u /mnt/server1

Проверим:

df -h

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

Отредактируйте файл /etc/fstab:

sudo vi /etc/fstat

Синтаксис:

[email protected]_OR_IP_HERE:/path/to/source/  /local/mountdir/  fuse.sshfs  defaults,_netdev  0  0

Примеры

Добавьте следующую запись в конец файла:

sshfs#[email protected]:/ /mnt/server1

Другой пример с дополнительными опциями:

sshfs#[email protected]:/ /mnt/server1 fuse defaults,idmap=user,allow_other,reconnect,_netdev,users,IdentityFile=/path/to/.ssh/keyfile 0 0

Рекомендованный вариант для монтирования, если вы используете Systemd:

[email protected]:/project/www/ /mnt/server1  fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/vivek/.ssh/id_rsa,allow_other,reconnect 0 0

Сохраните файл. Описание параметров:

  1. [email protected]: Удаленный сервер с SSHD
  2. fuse: Тип файловой системы.
  3. idmap=user: только подключения пользователя с определенным  UID.
  4. allow_other: Разрешить доступ для других пользователей.
  5. reconnect: Подключитесь к серверу.
  6. _netdev: файловая система находится на устройстве, которое требует доступа к сети (используется для защиты системы от попыток монтировать эти файловые системы, пока сеть не была включена в системе).
  7. users: Разрешить всем пользователям монтировать и размонтировать файловую систему.
  8. IdentityFile=/path/to/.ssh/keyfile —  файл ключей SSH.

1 Response

  1. admin

    Для того чтобы не вводить пароль можно использовать команду
    echo ‘pass’ | sshfs [email protected]:/dir /mydir -o password_stdin
    где
    pass — пароль от удаленного сервера;
    password_stdin — опция которая принимает пароль передаваемый, через echo.

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.