|
|||||||
Монтирование удаленной папки с помощью sshfs
Время создания: 25.04.2013 22:47
Раздел: root - Linux
Запись: Yurons/mytetra/master/base/1366919267fv0u52wkc8/text.html на raw.github.com
|
|||||||
|
|||||||
Монтирование удаленной папки с помощью sshfs Недавно возникла необходимость использовать удаленный сервер, чтобы удаленно работать там с проектами из svn. Доступ к серверу, только через ssh. Конечно работать с svn можно прям на удаленной машине, но вот с файлами мне проще работать на своей машине. Поэтому я и решил подключить себе нужную папку с удаленного сервера, как примонтированный диск, чтобы проводимые мною изменения сразу писались удаленно на сервер, без лишних, в дальнейшем, телодвижений. Так как у меня, есть только подключение через ssh, поэтому для монтирования удаленной папки я использовал файловую систему SSHFS (Secure SHell FileSystem).
Установка и использование
1. Устанавливаем sshfs: $ sudo apt-get install sshfs
2. Теперь монтируем удаленную папку (примерно так): $
sshfs user@remote.host:/somedir /somemydir -o uid=1000,gid=1000
где user - имя пользователя на удаленном сервере; remote.host - адрес удаленного сервера; /somedir - папка на удаленном сервере, которая будет монтироваться; /somemydir - папка на вашем компьютере, куда будет монтироваться удаленная папка; -o uid=1000,gid=1000 - различные параметры монтирования (подробнее смотрите в man). Понятное дело, все приведенные выше значения вы меняете под себя. 3. Отмонтируется все это дело, следующей командой $ fusermount -u /somemydir
4. Добавляем автомонтирование при загрузке системы через /etc/fstab. Для этого редактируем его: $ sudo nano /etc/fstab
и добавляем туда строку (пример): sshfs#user@remote.host:/somedir /somemydir fuse uid=1000,gid=1000 0 0
Монтирование, если просит пароль
1. В большинстве случаев, автомонтирование не прокатит, так как запрашивается пароль при монтировании, а такие опции, как password и credentials для sshfs - не катят. поэтому есть, как минимум, два варианта это поправить. 1.1. Первый - это использование RSA или DSA ключей для ssh соединения (про это я уже раньше упоминал в другой статье). 1.2. Второй - просто не парится всякими fstab, а просто добавить в автозагрузку 'Система'->'Параметры'->'Сеансы' запуск следующей команды echo 'password' | sshfs user@remote.host:/somedir /somemydir -o password_stdin где password - тот самый пароль для удаленного сервера; password_stdin - опция которая принимает пароль передаваемый, в данном случае, через echo. Конечно, в этом случае пароль передается в открытом виде, но никто не мешает запихнуть эту команду в скрипт, которому присвоить нужные права, а потом этот скрипт добавить в автозагрузку.
Проблема при монтировании. И ее решение.
1. Бывает, что при монтировании выскакивает ошибка read: Connection reset by peer в этом случае надо послать на адрес, к которому коннектимся, какой-нить текст $ ssh user@remote.host echo text
в ответ вы получите сообщение, из которого вас интересуют строки похожие на эти: Add correct host key in /home/user/.ssh/known_hosts to get rid of this message. Offending key in /home/user/.ssh/known_hosts:2 нас интересует именно последняя цифра, это номер строки, которую нам надо удалить, в данном случае - 2. 2. Удаляем в файле known_hosts найденную строку: $ sed -i -e '2d' /home/user/.ssh/known_hosts
3. Снова отправляем на адрес, к которому коннектимся, строку $ ssh user@remote.host echo text
только в этот раз - появится предложение на ввод пароля для добавления ключа этого адреса в ваш список. Все теперь ошибка не должна появляться снова.
Проблема: sshfs и svn. И ее решение.
1. При работе с sshfs столкнулся с такой проблемой, что когда пытаешься работать с svn на примонтированной папке, например делать checkout, то получаешь следующую ошибку: svn: Can't move '.svn/tmp/entries' to '.svn/entries': Operation not permitted 2. Лечится это, добавлением опции workaround=rename при монтировании. Пример: $
sshfs user@remote.host:/somedir /somemydir -o workaround=rename,uid=1000,gid=1000 |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|