SSHFS — Монтирование сервера по SSH

К серверу, на котором находится Убунтовод (кстати, который был любезно предоставлен Владимиром), я подключаюсь по ssh из за отсутствия ftp. Работать таким образом получается чуть медленнее, зато безопасней.

Однажды мне надоело подключаться к серверу каждый раз через FileZilla (делал я это через sftp) и было решено сделать монтирование сервера как удалённой папки.

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

Установка SSHFS

Итак, для установки sshfs достаточно всего одной команды:

sudo apt-get install sshfs

Использование SSHFS

Для начала создайте директорию, куда будете монтировать папку с сервера:

mkdir /media/server

После чего можно начинать монтирование:

sshfs username@server:/home/user/folder /media/server -o uid=1000,gid=1000

Где:

  • username - Имя пользователя на сервере
  • server - Адрес сервера (ip или домен)
  • /home/user/folder - Нужная папка на сервере, к которой производить подключение
  • /media/server - Папка на вашем компьютере, к которой будет происходить монтирование
  • -o uid=1000,gid=1000 - Параметры подключения

Чтобы узнать полный список параметров для подключения воспользуйтесь командой man:

man sshfs

Для отключения директории воспользуйтесь данной командой:

fusermount -u /media/server

Автоматическое подключение SSHFS

Но удобней всего будет настроить автоматическое подключение при загрузке ОС. В начале я планировал настроить подключение через /etc/fstab, но есть вариант проще и без одной проблемы.

Всё дело в том, что при подключении через /etc/fstab требуется настроить публичный ssh-ключ (иначе подключение не удастся из за запроса пароля), а для этого нужно создать в домашней директории сервера папку .ssh. Но так как у меня нет прав создавать папки в домашней директории, пришлось использовать другой вариант.

Поступим более простым способом (однако он будет не слишком безопасным, ибо пароль будет в открытом виде). Итак, достаточно сделать автозапуск следующей команды:

sh -c "sleep 5 && echo 'pass' | sshfs username@server:/home/user/folder /media/server -o password_stdin -o ServerAliveInterval=300 -o reconnect"

Думаю очевидно, что "pass" - это пароль от ssh к серверу.

Задержка в 5 секунд в начале сделана не просто так. Иногда подключение не срабатывало сразу после загрузки компьютера. Я не тратил время на нахождение причины (возможно это из за того, что подключение к интернету устанавливается не сразу), а сделал задержку, после которой подключение точно сработает.

Всё, сохраняем команду и теперь при включении компьютера будет автоматически создаваться подключение к удалённому серверу.

Нужен дизайн логотипа? Тогда вам сюда: www.art-wing.ru.

кто-то
2016-10-31 08:31:38
не работает под openwrt. из строки подключается, а из init-скрипта йух. если из строки стартануть скрипт - работает, но при загрузке нет, вот подстава