Монтирование удаленной папки с помощью sshfs

Установка и использование

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

Теги: ,

Ви повинні залогінитися ,щоб залишити коментар.