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

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

by manjarqo

Пользователи 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/<имя_пользователя>/sshf

Первая, как видно из команды, скрытая, в неё нам нужно положить ключи доступа к серверу по 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.

Надеюсь эта статься окажется кому-нибудь полезной. Я желаю всем счастья =)

P.S. из 2021 года: К сожалению sshfs исчез из homebrew в Big Sur, потому пришлось искать новый инструмент о нём написал в этом топике.

manjarqo

Гик, хакинтошник, линуксоид, считаю себя flutter разработчиком. Завёл канал, в котором изначально хотел показывать как я с нуля и до бесконечности погрузился в дорвей тематику, а в итоге просто рассказываю о себе, своих успехах и неудачах в сайтах, приложениях,  офлайн проектах. Добро пожаловать в https://www.youtube.com/channel/UCbrTUrElICx4pewX0NbolmQ

 

www. youtube.com/channel/UCbrTUrElICx4pewX0NbolmQ

8 957

Categories СофтTags mac os, sshfs

Используем SSHFS в Linux и Mac OS X.

Сегодня мы поговорим о файловой системе Secure Shell FileSystem (сокращенно SSHFS) благодаря которой мы сможем использовать удаленное управление файлами, при этом делать этом соблюдая безопасность, так как подключение будет осуществляться через SFTP, который в свою очередь работает через SSH. Мы рассмотрим работу с SSHFS в Linux и Mac OS X. Сразу замечу тот факт, что при нестабильном соединении можно будет столкнуться с проблемами, так как основное предназначение SSH, это не гарантированность соединения, а безопасность.

В свое время я даже пытался использовать SSHFS в Windows, но честно говоря ничего хорошего из этого не вышло, так как не смог найти ни одного устраивающего меня решения, так что отказался от этой идеи. Если вам, дорогие читатели, встречалось что-либо адекватное под Windows, пишите в комментарии, с удовольствием ознакомлюсь.

SSHFS в Mac OS X.

Дано:

  • Удаленный сервер с SSH, к которому мы хотим подключиться.
  • Mac OS X > 10.5.

Для начала нам поддержка FUSE. Раньше я использовал MacFUSE от Google, но он перестал обновляться, так что теперь мое внимание направлено на более динамичную разработку — FUSE for OS X, которая и позиционируется, как продолжение MacFUSE.

Все необходимое мы возьмем с официального сайта на гите http://osxfuse.github.com/

  1. Скачаем последнюю версию OSXFUSE.

На момент написания статьи версия OSXFUSE 2.5.4, DMG которого можно скачать по ссылке https://github.com/downloads/osxfuse/osxfuse/OSXFUSE-2.5.4.dmg.

  1. Откроем DMG пакет и нажмем Install OSXFUSE 2.5.

  2. Установим OSXFUSE, как любое другое приложение.

ВАЖНО: при выборе компонент установки поставить галку «MacFUSE Compatibility Layer».

  1. Скачаем пакет SSHFS.

На момент написания статьи версия SSHFS 2. 4.1., скачать можно по ссылке https://github.com/downloads/osxfuse/sshfs/SSHFS-2.4.1.pkg.

  1. Установим пакет SSHFS.

  2. Теперь нам понадобится приложение MacFusion, последнюю версию которого мы можем взять с официального сайта http://macfusionapp.org/.

  3. Скачаем и распакуем его в папку Программы.

  4. Запустим Macfusion, откроется подобное окно.

При первом запуске он спросит, хотим ли мы запускать его как сервис. Я обычно соглашаюсь, так как хочу получать автомонтирование.

  1. Нажмем на + слева внизу, выберем SSHFS.

  2. Укажем имя подключения,хост, логин, пароль и домашнюю директорию. После заполнения полей нажмем OK.

  1. Нажмем Mount на появившемся соединении.

  2. Перейдем по пути /Volumes и увидим наше подключение.

СОВЕТ: Если вы ходите на удаленный сервер через сертификат, то для подключения будет использоваться именно он, игнорируя связку User Name/Password.

Распространенная проблема: соединение не устанавливается, жалуется на непредвиденную ошибку.

Решение: Нажмите CMD+L. Откроется лог. Если вы увидите ошибку «Library not loaded: /usr/local/lib/libfuse.0.dylib», значит при установке OSXFUSE вы забыли поставить галку «MacFUSE Compatibility Layer». Заново запустите установку и поставьте галку. После этого проблема будет решена.

Управление подключениями SSHFS так-же возможно через командную строку, но в рамках этой статьи я не буду рассказывать про это, так как, в отличие от серверов, на десктопах не гнушаюсь GUI.

SSHFS в Linux на примере Debian и Ubuntu.

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

Нам потребуется:

  • Linux (в примере использован Debian, точно так-же все настраивается в Ubuntu)
  • OpenSSH клиент.
  1. Установим необходимые пакеты:
1
apt-get install fuse-utils sshfs
  1. Подгрузим поддержку fuse в ядро через modprobe.
1
modprobe fuse
  1. Убедимся, что fuse успешно подгружен через сообщения ядра.
1
dmesg |grep fuse

На выходе мы должны получить что-то типа этого:

[ 409.252165] fuse init (API version 7.13)
  1. Создадим директорию, в которую будем монтировать SSHFS.
1
mkdir /mnt/sshfs-test

Примонтируем SSHFS в директорию.

1
sshfs [email protected]:/ /home/
  1. Насладимся полученным результатом.

  2. Отмонтируем SSHFS.

1
fusermount -u /mnt/sshfs-test/

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

1
nano /etc/fstab
sshfs#admin@SITE:/mnt/sshfs-test /home fuse 0 0

Этот способ заработает, только если для пользователя, под которым будет происходить монтирование, будет использоваться аутентификация по сертификату (в примере admin). О том, как реализовать аутентификацию по сертификату, вы можете почитать в моей статье SSH. Великий и могучий.

На этом все, спасибо за внимание.

Linux  Mac OS  Tutorial 


Смотрите также
  • Как добавить постоянные статические маршруты (persistent static routes) в Mac OS X.
  • Знакомство с CMake. Часть 3. CMakeCache, модули CMake, зависимости сборки.
  • maybe? Интересная песочница для отладки операций с файлами в скриптах Linux.
  • Знакомство с CMake. Часть 2. Переменные, условия, сообщения, опции.
  • Знакомство с CMake. Часть 1. Установка, CMakeLists.txt, сборка.

Быстрая настройка SSHFS

Быстрая настройка SSHFS

Введение

Одной из неприятностей CS 105 является то, что программы должны бежать по Уилксу; это означает, что ваши файлы должны быть доступны там. Это не проблема, если вы работаете над Кнутом одного из лабораторных Mac, потому что эти компьютеры делят все файлы с Уилксом. Но что делать, если вы работаете на своем ноутбуке? Один из подходов заключается в редактировании локально, а затем используйте scp или putty для копирования файлы туда и обратно. Но это неуклюже. Во-вторых, научиться используйте редактор, например emacs или vim , который способны работать внутри окна удаленного терминала. Это отличный вариант, рекомендую. Но у некоторых людей есть другой предпочтительный редактор, для которого требуется локальный графический интерфейс.

Так что было бы неплохо, если бы ваши файлы автоматически делились с Уилкс? Оказывается, вы можете достичь этого результата с помощью sshfs , который доступен для Linux, Mac и (вроде) Окна.

Основная идея

По сути sshfs работает следующим образом: вы сообщаете ему имя из пустого каталога (папки) на локальном компьютере и заполненного дерево каталогов на удаленной машине. После этого программа сделает удаленное дерево волшебным образом появляется в вашей локальной папке. За Например, предположим, что у вас есть папка с именем ~/courses на Кнут (или, что то же самое, Уилкс). Вы можете создать локальный каталог назвал knuthstuff и передал его имя sshfs . (Это называется «монтированием» удаленной файловой системы.) Теперь все ваши существующие файлы из ~/курсы волшебным образом появятся в

кнутштуфф ! Вы можете их читать, писать и редактировать сколько душе угодно. Затем вы можете переключиться в окно Уилкса, чтобы скомпилировать и запустить программу. Довольно прикольно!

Установка

Linux и Mac OS X

Для начала вам необходимо установить программное обеспечение sshfs . В Linux и Mac sshfs является частью системы FUSE, которая способен делать намного больше, чем просто sshfs , так что вы нужно установить и FUSE и sshfs . Большинство Linux дистрибутивы уже включают FUSE и часто sshfs как хорошо. Если нет, вы можете использовать менеджер пакетов для его установки. (Пользователи UBuntu и Debian могут просто использовать apt-get install sshfs , который также установит FUSE.

Пользователи MacOS могут получить рабочую установку с сайта OSX FUSE.

В любой ОС вам понадобится пустой каталог для монтирования. Это часто полезно дать этому каталогу то же имя, что и на удаленном стороны (хотя это не обязательно). Если вы используете графический интерфейс, вы можете создать пустой каталог в удобном месте. Или из команды линия, вы можете использовать мкдир :

мкдир ~/курсы/cs105
 
(Предположим, что у вас уже есть ~/courses .)

Окна

У пользователей Windows есть небольшая проблема. Вы можете выполнить поиск «Windows sshfs» и узнайте, что есть гитхаб проект, но я не знаю, работает ли он на самом деле, и какой версии Windows, на которых он работает. Так что ты в значительной степени сам по себе.

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

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

Linux и Mac OS X

Чтобы смонтировать удаленную файловую систему, вы используете команду sshfs . из окна терминала (в Mac OS X запустите приложение «Терминал»; вы можете найти его с помощью Spotlight). В моих примерах я собираюсь смонтировать удаленную файловую систему с именем ~/courses/cs105 на локальную каталог с именем ~/classes/homework . я использую разные имена преднамеренно, чтобы вы могли видеть, какое имя куда идет; я рекомендуется использовать одни и те же имена локально и удаленно. Ты будешь хотите подставить свои имена в команду ниже, и, конечно же, замените «geoff» своим именем пользователя. Я поставил «необходимо заменить» материал курсивом.

Начать очень просто: просто введите:

sshfs Джефф @wilkes.cs.hmc.edu: курсы/cs105 ~ /классы/домашнее задание

в окне терминала. (Обратите внимание, что я опустил тильду в удаленный путь.) Как только вы получите командную строку, удаленный файл должно волшебным образом появиться в вашей папке классов/домашней работы !

Когда вы закончите работу, вам нужно «размонтировать» файловую систему. В Linux это делается с помощью предохранитель :

fusermount -u ~/ занятия/домашнее задание

На Mac это делается с помощью umount (сокращение от «размонтировать»):

umount ~/ занятия/домашнее задание

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

Установите MacFuse и sshfs в macOS Monterey

MacFUSE, модуль FUSE для macOS, существует уже довольно давно в различных формах. Кажется, что каждый раз, когда Apple выпускает новую версию ОС, возникают проблемы с установкой MacFuse. Это просто последняя версия с MacFUSE (4.2.4) в macOS Monterey (12.2. 1) на чипсете Apple M1 (Max), плюс немного об использовании его с sshfs .

Даже если вы привыкли использовать Homebrew (https://brew.sh/) или MacPorts (https://www.macports.org/), я предлагаю загрузить программу установки непосредственно с https://macfuse.io/ . Кроме того, поскольку MacFuse является расширением ядра, Apple потребует от вас явно разрешить использование расширений ядра, поскольку они могут представлять серьезную угрозу безопасности.

Вам потребуется MacFuse не ниже версии 4 на компьютерах Mac M1. Это связано с тем, что Rosetta 2 не будет выполнять свою магию перевода для расширений ядра, и поэтому вам нужна версия Apple Silicon. Кроме того, поскольку MacFuse правильно подписан, вам НЕ нужно отключить SIP (защиту целостности системы). Если кто-то говорит иначе, он ошибается.

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

Включить системные расширения (расширения ядра)

Для этого вам необходимо перезагрузиться в режиме восстановления macOS.

  • Выключение/перезагрузка
  • Удерживайте Power/Touch-ID, чтобы запустить параметры запуска. Выберите «Опции»:

  • Выберите «Startup Security Utility» в меню «Утилиты»:

  • Откройте «Политику безопасности…» для загрузочного диска:

  • Включить расширения ядра:

  • Перезагрузитесь в macOS в меню «Apple».

Установите MacFuse

Следуйте обычному процессу установки. В конце установки вам будет предложено включить расширение ядра:

  • Откройте «Системные настройки» «Безопасность и конфиденциальность»:
  • Нажмите «Разрешить»

  • Перезагрузите Mac в последний раз, чтобы разрешить загрузку расширения ядра при загрузке.

Установить sshfs

Я чаще всего использую MacFuse sshfs . Так как Homebrew устарел от MacFuse, рецепт установки sshfs тоже не работает. К счастью, установить из исходного кода несложно.

Обратите внимание, что я использую свою личную вилку, который является форком версии OSXFuse, который сам по себе является ответвлением «настоящего источника» от libFUSE, модифицирован для компиляции macOS Monterey.

 # Предварительные требования
#brew install glib automake
# Оригинал
#git clone [email protected]:osxfuse/sshfs.git
# Моя вилка и ответвление:
git clone --branch 2.9@monterey [email protected]:eengstrom/sshfs.git
компакт-диск sshfs
тест -e Makefile.in || автореконф -я
./настроить
сделать
судо сделать установить
 

Полезные ссылки:

  • О защите целостности системы на вашем Mac
  • О системных расширениях и macOS
  • Отключение и включение защиты целостности системы

и другие, если читать между прочим:

  • https://apple.
Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *