Если вы поддерживаете удаленный компьютер, может быть очень полезно смонтировать файловую систему этого компьютера для перемещения файлов. MacFuse и sshfs
сделать это действительно легко, хотя настроить и смонтировать его автоматически при входе в систему может быть немного сложно.
Во-первых, убедитесь, что вы можете подключиться к удаленному компьютеру без ввода пароля. Выполните настройку в Leopard, наконец, поддерживая ssh-agent при входе в систему и убедитесь, что он работает:
ssh USER@HOSTNAME:
Если он вошел в систему без запроса пароля или пароля, вы готовы продолжить.
Затем установите sshfs
MacFuse и установите его в соответствии с разделом Установка sshfs 1.9 с MacFuse 1.7 в OS X Leopard 10.5.5 .
Выясните, где вы хотите смонтировать удаленный том. Я бы не рекомендовал использовать, /Volumes
так как похоже, что OS X автоматически удаляет каталоги, когда вы отключаете файлы. Так что вместо этого я использовал/mnt/HOSTNAME
mkdir -p / mnt / HOSTNAME
(Очевидно, вы замените HOSTNAME
на имя вашего удаленного сервера.)
Затем убедитесь, что вы можете смонтировать удаленный сайт как том без указания пароля, используя sshfs
:
sshfs USER@HOSTNAME:PATH /mnt/HOSTNAME -oreconnect,allow_other,volname=VOLUME_NAME
Установите для VOLUME_NAME любое имя, которое вы хотите назвать в Finder. Я использовал HOSTNAME. PATH является необязательным; установите его в любой каталог, который вы хотите смонтировать на удаленном хосте. Если он не установлен, он будет использовать ваш домашний каталог.
Если вы не получаете сообщений об ошибках, и когда вы делаете удаленные файлы, появляются, то вы готовы перейти к следующему шагу.ls /mnt/HOSTNAME
Размонтируйте только что смонтированный том:
umount / mnt / HOSTNAME
Теперь начинается хитрая вечеринка. Вам нужно будет создать элемент LaunchAgent для монтирования вашего тома при входе в систему. Это само по себе довольно легко. Однако, если ваша система похожа на мою, у этого элемента не будет правильно настроен SSH_AUTH_SOCK, поэтому он не сможет войти на удаленный хост без использования пароля. Вам придется вручную установить SSH_AUTH_SOCK.
Сначала создайте оболочку, sshfs
которая будет устанавливать для вас SSH_AUTH_SOCK. Поместите это в файл, где вы хотите. Я предлагаю /opt/local/bin/sshfs-authsock
.
#!/bin/bash export SSH_AUTH_SOCK=$(ls -t /tmp/launch-*/Listeners | head -1) /opt/local/bin/sshfs $*
По сути, этот файл устанавливает SSH_AUTH_SOCK на самый последний сокет в вашем каталоге tmp. В большинстве случаев это должно быть правильным. Это вряд ли даст сбой, и нет проблем с безопасностью, если это произойдет.
Теперь вы можете, наконец, создать файл launchd plist. Поместите это в
~/Library/LaunchAgents/BACKWARDS_HOST_DNS.PATH.sshfs.plist
(Если путь вашего хоста, скажем, foo.niskala.org
и ваш PATH был /tmp
, тогда ваше результирующее имя файла будет таким org.niskala.foo.tmp.sshfs.plist
. Это просто соглашение, не стесняйтесь называть файл как хотите, на самом деле; но это действительно должно заканчиваться .plist
.)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>BACKWARDS_HOST_DNS.PATH.sshfs</string> <key>ProgramArguments</key> <array> <string>/opt/local/bin/sshfs-authsock</string> <string>USER@HOSTNAME:</string> <string>/mnt/HOSTNAME</string> <string>-oreconnect,allow_other,volname=VOLUME_NAME</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
Теперь загрузите файл plist и запустите его, чтобы увидеть, работает ли он.
launchctl load ~/Library/LaunchAgents/BACKWARDS_HOST_DNS.PATH.sshfs launchctl start BACKWARDS_HOST_DNS.PATH.sshfs
Если вы не видите сообщений об ошибках, посмотрите, правильно ли смонтирован том:
ls / mnt / HOSTNAME
Если ваши удаленные файлы появляются, то отлично! Вы сделали!
Если нет, используйте
launchctl unload ~/Library/LaunchAgents/BACKWARDS_HOST_DNS.PATH.sshfs
чтобы выгрузить файл, прежде чем вносить в него изменения, затем используйте ps auxwww | grep sshfs
и, kill
чтобы найти и уничтожить все sshfs
процессы, прежде чем пытаться снова.
Рекомендации: