Как подключить папку с удаленного сервера по ssh на macOS

В этой статье мы рассмотрим подключение к удаленному каталогу через терминал с помощью ssh. С помощью этого вы сможете копировать и редактировать файлы из терминала так, будто они у вас на диске.

Установка FUSE и SSHFS

Для подключения понадобятся FUSE и SSHFS. Чтобы их установить воспользуемся установщиком brew. Если он у вас не установлен, то это можно сделать с помощью следующей команды:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Для установки FUSE нужно выполнить команду:

brew cask install osxfuse

Установим SSHFS:

brew install sshfs

Подключение папки

Теперь, для подключения к удаленному серверу можете выполнить команду:

sudo sshfs -o allow_other,defer_permissions,IdentityFile=~/.ssh/id_rsa USER@HOST:/REMOTE_PATH/ /LOCAL_PATH

Вместо USER, HOST, REMOTE_PATH подставляете логин, адрес сервера, а также путь к удаленной папке на сервере. Вместо LOCAL_PATH подставляете путь на компьютере, где бы вы хотели работать с удаленным сервером.

Чтобы проверить все смонтированные папки, выполните команду mount, внизу её вывода должна появиться строка вида:

user@host:/remotefolder/ on /localfolder (osxfuse, synchronous)

Отключение папки

Для отключения необходимо вызвать команду umount и передать к ней путь к удаленному каталогу:

umount USER@HOST:/REMOTE_PATH/

Возможные проблемы

Если у вас по какой-то причине зависло приложение sshfs и не удается подключить/отключить каталог, то выполните следующие команды:

pgrep -lf sshfs
kill -9 PID_SSHFS_PROCESS
sudo umount -f MOUNTED_CATALOG

Вместо PID_SSHFS_PROCESS нужно подставить PID процесса sshfs, он получится в результате выполнения первой команды. Второй строкой мы останавливаем процесс sshfs, а затем с правами root принудительно демонтируем раздел из файловой системы.

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