Монтируем удалённый сервер через sshfs в mac os
by manjarqo
Пользователи Mac OS пришедшие в него, как и я, из мира Linux, конечно же знают, что терминал настолько крутая вещь, и в нём можно творить такое… такое… В общем в нём можно делать всё и везде. Когда я случайно нашёл в своём Hackintosh’е терминал, слёзы радости проступили на моих глазах, а когда настроил монтирование своих серверов в папку в Finder по SSH ключу, я спутал это состояние с достижением нирваны или самадхи, в общем чего-то эдакого из Буддизма. В общем те кому интересно, как этого достичь «Велкоме» в статью.
Итак друзья, как оказалось ничто человеческое Маку не чуждо и в нём тоже есть довольно годный пакетный менеджер, точнее их не один даже, но вот один прям годнота. Имя ему «Homebrew«, почитать о нём и установить, если у вас его ещё нет, можно на его официальном сайте https://brew.
Homebrew-Cask, информация по нему на его официальном сайте https://caskroom.github.io/. Для тех кто мне, по какой-то причине, решил не глядя довериться, вот две команды на установку обоих:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew tap caskroom/cask
Считаю что он у вас уже есть и потому даю сразу команды ввода в терминал уже адресованные к ним. Для реализации поставленных целей нам потребуются два пакета, первый насколько я понимаю нужен для монтирования в Мак, а второй итак вроде понятно:
- osxfuse
- 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/
- Скачаем последнюю версию OSXFUSE.
На момент написания статьи версия OSXFUSE 2.5.4, DMG которого можно скачать по ссылке https://github.com/downloads/osxfuse/osxfuse/OSXFUSE-2.5.4.dmg.
Откроем DMG пакет и нажмем Install OSXFUSE 2.5.
Установим OSXFUSE, как любое другое приложение.
ВАЖНО: при выборе компонент установки поставить галку «MacFUSE Compatibility Layer».
- Скачаем пакет SSHFS.
На момент написания статьи версия SSHFS 2. 4.1., скачать можно по ссылке https://github.com/downloads/osxfuse/sshfs/SSHFS-2.4.1.pkg.
Установим пакет SSHFS.
Теперь нам понадобится приложение MacFusion, последнюю версию которого мы можем взять с официального сайта http://macfusionapp.org/.
Скачаем и распакуем его в папку Программы.
Запустим Macfusion, откроется подобное окно.
При первом запуске он спросит, хотим ли мы запускать его как сервис. Я обычно соглашаюсь, так как хочу получать автомонтирование.
Нажмем на + слева внизу, выберем SSHFS.
Укажем имя подключения,хост, логин, пароль и домашнюю директорию. После заполнения полей нажмем OK.
Нажмем Mount на появившемся соединении.
Перейдем по пути /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 | apt-get install fuse-utils sshfs |
- Подгрузим поддержку fuse в ядро через modprobe.
1 | modprobe fuse |
- Убедимся, что fuse успешно подгружен через сообщения ядра.
1 | dmesg |grep fuse |
На выходе мы должны получить что-то типа этого:
[ 409.252165] fuse init (API version 7.13)
- Создадим директорию, в которую будем монтировать SSHFS.
1 | mkdir /mnt/sshfs-test |
Примонтируем SSHFS в директорию.
1 | sshfs [email protected]:/ /home/ |
Насладимся полученным результатом.
Отмонтируем 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.