В этой статье мы рассмотрим подключение к удаленному каталогу через терминал с помощью ssh. С помощью этого вы сможете копировать и редактировать файлы из терминала так, будто они у вас на диске.
Установка FUSE и SSHFS
Для подключения понадобятся FUSE и SSHFS. Чтобы их установить воспользуемся установщиком brew. Если он у вас не установлен, то это можно сделать с помощью следующей команды:
1 |
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
Для установки FUSE нужно выполнить команду:
1 |
brew cask install osxfuse |
Установим SSHFS:
1 |
brew install sshfs |
Подключение папки
Теперь, для подключения к удаленному серверу можете выполнить команду:
1 |
sudo sshfs -o allow_other,defer_permissions,IdentityFile=~/.ssh/id_rsa USER@HOST:/REMOTE_PATH/ /LOCAL_PATH |
Вместо USER, HOST, REMOTE_PATH подставляете логин, адрес сервера, а также путь к удаленной папке на сервере. Вместо LOCAL_PATH подставляете путь на компьютере, где бы вы хотели работать с удаленным сервером.
Чтобы проверить все смонтированные папки, выполните команду mount
, внизу её вывода должна появиться строка вида:
1 |
user@host:/remotefolder/ on /localfolder (osxfuse, synchronous) |
Отключение папки
Для отключения необходимо вызвать команду umount и передать к ней путь к удаленному каталогу:
1 |
umount USER@HOST:/REMOTE_PATH/ |
Возможные проблемы
Если у вас по какой-то причине зависло приложение sshfs и не удается подключить/отключить каталог, то выполните следующие команды:
1 2 3 |
pgrep -lf sshfs kill -9 PID_SSHFS_PROCESS sudo umount -f MOUNTED_CATALOG |
Вместо PID_SSHFS_PROCESS нужно подставить PID процесса sshfs, он получится в результате выполнения первой команды. Второй строкой мы останавливаем процесс sshfs, а затем с правами root принудительно демонтируем раздел из файловой системы.
P.S.: Такой способ подключения не позволит увидеть папку в Finder, но позволит работать с ней из терминала.