Монтирование удалённых каталогов с помощью SFTP
Часто бывает нужен доступ к какой либо папке на сервере, и как по закону подлости на нём не оказывается хотя бы ftp сервера в виду того, что посчитали его ненужным во время настройки. Что ж. Можно потратить немного времени на его настройку, а можно сделать более лаконично, просто и безопасно монтируя удалённые каталоги с помощью sshfs. Тем более что от сервера требуется только наличие настроенного, и рабочего ssh сервера.
Для этого нам понадобится fuse, и собственно сам sshfs.
sudo aptitude install sshfs fuse-utils
У меня Debian Sid, и пакеты называются именно так. В других дистрибутивах может не быть пакета fuse-utils, но будет fuse. Он и нужен. Пакет sshfs обычно одинаково назвывается во всех дистрибутивах.
Теперь загрузим модуль fuse:
sudo modprobe fuse
Если у Вас к примеру archlinux, то не забудьте добавить модуль fuse в секцию MODULES в /etc/rc.conf
чтобы он загрузился при следующем старте системы. Так же и в других дистрибутивах где пакетный менеджер не cделает это за Вас, следует добавить модуль в автозагрузку. Как это сделать зависит от конкретного дистрибутива.
Теперь необходимо добавить пользователя от котого планируется использование sshfs в группу fuse, и предоставить группе fuse соответствующие права:
sudo gpasswd -a $USERNAME fuse
sudo chown root:fuse /dev/fuse
Вместо $USERNAME
следует подставить имя нужного пользователя.
Теперь для применения прав следует перезайти данным пользователем в систему, или "перелогиниться" в текущем терминале:
su - $USERNAME
Всё готово. Для использования создадим папку в любом удобном месте и смонтируем туда. Я предпочитаю директорию /mnt/sftp
.
sshfs <имя_пользователя>@<адрес>:/путь /mnt/sftp
Вместо < имя_пользователя>
следует поставить логин к ssh сервера, и вместо <адрес>
соответственно адрес.
Монтировать следует от обычного пользователя, и необходимо проверить, чтобы на директорию в которую монтируем, были соответствующие права.
Отмонтировать директорию следует с помощью команды fusermount:
fusermount -u /mnt/sftp