Монтируем удалённый сервер через sshfs в mac os

Софт /
Софт: Монтируем удалённый сервер через sshfs в mac os

Пользователи Mac OS пришедшие в него, как и я, из мира Linux, конечно же знают, что терминал настолько крутая вещь, и в нём можно творить такое… такое… В общем в нём можно делать всё и везде. Когда я случайно нашёл в своём Hackintosh'е терминал, слёзы радости проступили на моих глазах, а когда настроил монтирование своих серверов в папку в Finder по SSH ключу, я спутал это состояние с достижением нирваны или самадхи, в общем чего-то эдакого из Буддизма. В общем те кому интересно, как этого достичь «Велкоме» в статью.

Итак друзья, как оказалось ничто человеческое Маку не чуждо и в нём тоже есть довольно годный пакетный менеджер, точнее их не один даже, но вот один прям годнота. Имя ему "Homebrew", почитать о нём и установить, если у вас его ещё нет, можно на его официальном сайте https://brew.sh/. И мало того что он сам по себе хорош, так к нему ещё расширение есть в котором довольно обширная база пакетов устанавливаемых и удаляемых в пару кликов, зовётся оно
Homebrew-Cask, информация по нему на его официальном сайте https://caskroom.github.io/. Для тех кто мне, по какой-то причине, решил не глядя довериться, вот две команды на установку обоих:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew tap caskroom/cask

Считаю что он у вас уже есть и потому даю сразу команды ввода в терминал уже адресованные к ним. Для реализации поставленных целей нам потребуются два пакета, первый насколько я понимаю нужен для монтирования в Мак, а второй итак вроде понятно:
  1. osxfuse
  2. sshfs
Установим их выполнив поочередно команды в терминале:
brew cask install osxfuse
brew install sshfs


Создаём в домашней директории две папки:
md /Users/<имя_пользователя>/.ssh
md /Users/<имя_пользователя>/sshfs

Первая, как видно из команды, скрытая, в неё нам нужно положить ключи доступа к серверу по ssh,
вторая может иметь абсолютно любое понравившееся вам имя, в неё просто будет монтироваться файловая система вашего сервера. Прошу обратить внимание на то что <имя_пользователя> необходимо исправить на имя ВАШЕГО пользователя.

Небольшое лирическое отступление, может вы ещё не в курсе, что в Finder можно включить отображение скрытых файлов комбинацией клавиш Cmd + Shift + >
Итак ключи лежат на месте можно проверить всё ли у нас работает подключившись к серверу по SSH:
ssh -i ~/.ssh/id_rsa <имя_пользователя>@127.0.0.1
где вместо 127.0.0.1 необходимо подставить ваш ip и вместо <имя_пользователя>, ваш логин на сервере.

Если подключение получилось, то можно пробовать монтировать, но предварительно не забудьте выйти из ssh сессии на сервере, простой командой exit, после чего уже вводим
sshfs <имя_пользователя>@127.0.0.1:/ ~/sshfs

где вместо 127.0.0.1 необходимо подставить ваш ip и вместо <имя_пользователя>, ваш логин на сервере.
Если терминал не ругнулся, идём в Finder проверять.

Маководы со стажем скажут, что есть же Macfusion и с помощью него всё тоже самое можно сделать в графическом режиме, соглашусь, но почему то последний релиз Macfusion'а оказался не совместим с Mac OS X Sierra.

Надеюсь эта статься окажется кому-нибудь полезной. Я желаю всем счастья =)
Инженер по специальности радиотехника
Geek и пользователь
Manjaro Linux
и Hackintosh
Интересы: Компьютеры, интернет, музыка, спорт.
9 комментариев
VladislavGodunov
Дошел до последнего действия. Добавил ключ, авторизировался, но при вводе последней команды выскакочило «The program 'sshfs' is currently not installed. You can install it by typing:
apt install sshfs». Выполнил команду apt install sshfs, затем опять ввел sshfs <имя_пользователя>@127.0.0.1:/ ~/sshfs(свои данные, разумеется), и теперь он пишет fuse: bad mount point `/root/sshfs': No such file or directory
manjarqo
А вы выполнили эту команду ранее(установка sshfs)?
brew install sshfs
VladislavGodunov
Да, выполнял
manjarqo
fuse: bad mount point `/root/sshfs': No such file or directory

вы от root выполняете команду а надо от пользователя
VladislavGodunov
Александр, большое спасибо! Все получилось! По своему незнанию я не вышел из текущего уровня! Т.е вводил команду сразу после ssh запроса, а нужно было выйти на уровень назад(я перезапустил терминал). Я думаю это стоит уточнить в статье, иначе такие как я будут путаться)))
manjarqo
аааа, тоесть вы эту команду вводили уже у себя на сервере?))
VladislavGodunov
Именно!))
manjarqo
Ясно, статью поправил. Рад что пригодилось)
комментарий был удален
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.