Монтирование удаленной папки с помощью 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

This article was updated on август 19, 2024

You should also read:

Multicast и Unicast вещание с помощью VLC media player (vlc multicast and unicast stream)

Запуск вещания VoD (Video on Demand) — Видео по запросу

Для примера возьмем сервер с unicast IP-адресом 172.16.10.14, вещаем с порта 5554

Консоль сервера: =========== 1. vlc --ttl 12 --color -I telnet --telnet-password 123 --rtsp-host 172.16.10.14:5554

2. telnet localhost 4212

3. > new Test vod enabled > setup Test input /path/to/file.avi

Монтирование сетевого ресурса в Linux (smb-ресурса)

У многих «новичков» возникают проблемы при монтировании сетевого ресурса в Linux. Решил написать краткий мануал по монтированию сетевых ресурсов использую smbfs.

Пакет smbfs обеспечивает непосредственное монтирование удаленных ресурсов 8MB в Linux таким же образом, как тома NFS монтируются в Linux. Использовать smbfs после инсталляции крайне просто.

Итак. Поехали. Я использую Debian\Ubuntu:

Для начала установим smbfs и smbclient (Если он не установлен):

apt-get install smbfs smbclient

Монтирование дисков в Ubuntu

Для начала нам нужно узнать какие носители подключены к компьютеру. Набираем в консоли команду

sudo fdisk -l

Теперь вводим команду монтирования:

sudo mount /dev/sdb1 /mnt/hard
Папка /mnt/hard является точкой монтирования и должна быть создана заранее.

Чтобы отмонтировать устройство, используйте команду:

sudo umount /mnt/hard

Не пытатесь отмонтировать диск находясь в примонтированной директории :)

Иначе получите ошибку: (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))