Mac os ssh folder

Самый удобный способ работы с файлами хостинга на macOS (sshfs + Automator)

Всем привет, друзья! Сегодня мы рассмотрим удобнейший способ работы с файловой системой удаленного веб-сервера или хостинга с помощью sshfs на macOS. Сама программа sshfs является linux-приложением, поэтому вы без труда сможете использовать данное руководство в системе Linux и подобных, имеющих реализацию FUSE. Благодаря данному руководству вы сможете настроить автоматическое подключение файловой системы вашего веб-сервера к компьютеру и работать с файлами так быстро, как будто работаете с файлами вашей собственной файловой системы. Скорость работы будет ограничиваться только скоростью вашего интернет-соедиения.

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

Для начала необходимо настроить SSH аутентификацию по открытому ключу. Как это сделать мы рассматривали в одном из наших предыдущих уроков «Rsync — молниеносный деплой средних и крупных проектов», раздел «1.2 Настройка SSH Аутентификации по открытому ключу». Для удобства, я продублирую это руководство в данной статье.

Настройка SSH Аутентификации по открытому ключу

Создайте директорию для SSH, в том случае, если она еще не создана (знак доллара копировать не нужно):

Зайдите в созданную папку и сгенерируйте ключ (на все вопросы — жмем Enter):

Скопируйте получившийся ключ id_rsa.pub на ваш хостинг или сервер:

Подключитесь к удаленному серверу для внесения нового ключа в authorized_keys:

Если директория еще не существует, создайте ее и установите соответствующие права:

Скопируйте сгенерированный ключ в специальный файл доступа ‘authorized_keys’ и установите на него безопасные права:

Удалите скопированный в корень вашего пользователя ключ, который уже добавили в общий файл и завершите вашу сессию командой logout:

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

Если вы не получили сообщения вида «Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa)», а получили оведомление вроде такого: «Could not open a connection to your authentication agent.», то следует запустить агента командой eval:

И заново запустите ssh-add. Теперь вы можете пользоваться SSH на вашем компьютере, а в том числе и rsync, который использует SSH без авторизации в автоматическом режиме. Попробуйте подключиться снова к вашему серверу по SSH и убедитесь, что от вас не требуется ввести пароль. В противном случае, если пароль все-таки требуется ввести, повторите процедуру получения SSH ключа заново.

Установка sshfs в macOS

Для установки sshfs в macOS нам понадобится менеджер пакетов Homebrew. Для его установки перейдите на страницу Homebrew и выполните инструкции по его установке, которая сводятся к открытию терминала и выполнения одной команды:

Процесс установки Homebrew может занять довольно продолжительное время из-за установки инструментов командной строки Xcode.

По завершении установки менеджера пакетов Homebrew можно приступать к установке sshfs. Для этого последовательно выполните в терминале следующие команды:

Читайте также:  Windows hal dll не найден

Отлично! Sshfs установлен.

Давайте создадим в папке «Документы» папку «SERVER», к которой и будем подключать файловую систему нашего хостинга.

Если с данной задачей вы справились, можно смело двигаться дальше.

Использование sshfs довольно элементарно. Все действия производятся в терминале (Все данные замените на ваши, такие, как доступ к серверу и имя пользователя):

Как видим, команда элементарна. Сначала мы выполняем программу «sshfs», после чего задаем параметры подключения к серверу формата логин@ваш-хост:/путь/до/вашего/аккаунта (пробел) /Путь/До/Вашей/Локальной/Папки/SERVER

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

В результате наша команда будет выглядеть следующим образом:

Отлично, теперь мы имеем подключенную файловую систему вашего хостинга, которая постоянно будет подключена и никогда не «отрубится» благодаря параметру reconnect.

Однако пользователи macOS заметят одну неприятную особенность работы sshfs, в отличие от пользователей Linux — подключение будет медленное, переход по папкам будет медлителен и в целом работа будет не очень шустрая.

Все дело в том, что работа программы sshfs в macOS несколько отличается от работы в Linux и здесь не обойтись без дополнительных параметров кеширования и сжатия.

Вот полная команда со всеми параметрами:

Здесь мы видим, что окромя «reconnect» появились и другие параметры, которые мы перечисляем через запятую. Именно эти параметры и явное отключение компрессии в конце сета параметров и сделают наше подключение и работу с файлами сервера или хостинга молниеносным, как соленые огурчики с молоком.

Обратите внимание, что у нас в конце появился еще один параметр «-ovolname=SERVER», который просто определяет имя нашего подключения. Название нашей папки, которую мы создали в Документах при подключении поменяется именно на это название, поэтому не вижу смысла задавать другое значение данному параметру.

Автоматизация подключения при загрузке системы

Все, наша команда готова. Осталось только автоматизировать подключение при загрузке системы. Для этого нам понадобится приложение «Automator», которое вы с легкостью найдете в вашем Launchpad на macOS.

В открывшемся окне выберем создание нового документа:

Далее выбираем тип для документа «Программа»:

Далее в поле поиска вбиваем «скрипт» и выбираем пункт «Запустить Shell-скрипт».

После чего откроется панель, в которой уже будет тестовый первый скрипт, выполняющий команду «cat». Убираем «cat» и пишем нашу команду, которую мы определили ранее:

Обратите внимание, что системный вызов команды «sshfs» мы заменили на прямой «/usr/local/bin/sshfs». Дело в том, что Shell-обработчик Автоматора не видит установленной программы в системе и нужно писать полный путь до нашего sshfs.

Теперь осталось только запустить наш скрипт и сохранить программу в любое удобное место с именем «Server.app»:

Обратите внимание, что место сохранения нашего приложения — iCloud. Здесь есть специальная папка для сохранения пользовательских Automator приложений.

После того, как наш скрипт запакован в приложение, при запуске которого подключается наш сервер, можно добавить его в автозагрузку. «Системные настройки» > «Пользователи и группы». Выбираете вашего пользователя и переходите на вкладку «Объекты входа». И добавляете, собственно говоря, ваше приложение:

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

Читайте также:  Activating windows with powershell

Премиум уроки от WebDesign Master

Создание сайта от А до Я. Комплексный курс

Создание современного интернет-магазина от А до Я

Источник

Mounting a remote folder on OS X over SSH (Yosemite)

This is an update of my previous post that you can read here.

The current project I am working on needs to access to a folder on a remote server. It seems like a simple task, but there is one issue: I am a Mac user.

Mounting a server folder is very useful if you have a lot of data to share with your colleagues. It is insane to copy it to your hard drive every time that it changes or manage large amounts of data with version control since it will slow down the repository.

The best solution we found in the lab is using SSH and mounting folders using sshfs. It works really well in Linux and we don’t want to use a different system for other operating systems.

For this project I need a new folder inside my /home folder to use as a mount point for the remote file system. This point is not a negotiable due to the project requirements.

When I run mkdir on my mac to create the /home/projects folder, the command runs but doesn’t create a folder. I ran the mount command and found that the /home folder on Mavericks is an auto mounted folder (see the automount man page).

My first thought was: «well, I could deactivate the automount”. However, radical changes like this are ill-advised. In the next sections I will explain how to install SSHFS for Mac and two different ways to mount a remote ssh folder: deactivating the automount and using it.

Installing SSHFS for Mac

The easy way to install SSHFS is navigate to http://osxfuse.github.io and download two files:

Also, you can use homebrew, but, in this moment, the OSXFUSE version is still the 2.7.3 and you can have problems using the automount.

Deactivating the automount

To deactivate the automount, I only need to edit the file /etc/auto_master and comment the line starting with /home auto_home. . After that, I ran sudo automount -vc to tell the daemon that the configuration file was changed. I unmount the /home folder running «umount /home» (be careful, you must not be in this folder while running this command). At this point, I can create a new folder, change the permissions for the new folder created, and mount the remote filesystem. The steps were:

Note: type yoursecretpassword

Using automount

For use OSXFUSE on a Mac, we need to write a single line in the file /etc/auto_home , but, we need to prepare a few other items.

The automount system runs as a daemon without user interaction. This means that we need to create a shared key, which the daemon can use to connect to the server.

To create a shared key, run:

Note: the passphrase can be empty

Next we must copy the key to the server. To do that, we need to install the ssh-copy-id script:

Copy the key using the previously installed script:

Читайте также:  Windows media player меня аудио дорожки

Note: It will ask for the password

Then test if it is ok trying to connect to the server:

Note: It won’t ask for the password.

At this point, we can manually mount sshfs like in the previous section, but using the shared key:

However, if we want to automatically mount the remote folder, we still have work to do.

For use OSX fuse in the automount tools, we need to set the next kernel variable to 1:

It will be nice to set this variable in the /etc/sysctl.conf file, but the problem is that we can only set up this variable once the kernel module is loaded. Apple encourages programmers to use launchd, so, I started using it.

The solution is really simple, we only need to create these files into /Library/Application Support/AmaralAutoMount folder:

The first file define how to run the second one that is a sh script.

Now, the next step is configure launchd to use this file. To do that, I suggest to create a soft link to the “plist” file:

To run this script we can restart the computer (easy way) or run this command:

Finally, we have all the prerequisites to write this line at the end of /etc/auto_home :

Now, run this command to tell the daemon that the configuration files are changed so we can use the folder:

Источник

Move and copy files in Terminal on Mac

In Terminal, you can move and copy files locally or remotely using the mv , cp and scp command-line tools.

Tip: It’s easier to move and copy files using the Finder. See Organise files in folders.

Move a file or folder locally

In the Terminal app on your Mac, use the mv command to move files or folders from one location to another on the same computer. The mv command moves the file or folder from its old location and puts it in the new location.

For example, to move a file from your Downloads folder to a Work folder in your Documents folder:

You can also change the name of the file as it’s moved:

Copy a file or folder locally

In the Terminal app on your Mac, use the cp command to make a copy of a file.

For example, to copy a folder named Expenses in your Documents folder to another volume named Data:

The -R flag causes cp to copy the folder and its contents. Note that the folder name does not end with a slash, which would change how cp copies the folder.

Copy a file or folder remotely

In the Terminal app on your Mac, use the scp command to copy a file or folder to or from a remote computer.

scp uses the same underlying protocols as ssh .

For example, to copy a compressed file from your home folder to another user’s home folder on a remote server:

You’re prompted for the user’s password.

The -E flag preserves extended attributes, resource forks and ACL information.

The -r flag, which isn’t used in this example, causes scp to copy a folder and its contents.

Источник

Оцените статью