SSHFS -монтирование удаленных систем через SSH.

sshfs — это утилита, основанная на FUSE (Filesystem in Userspace), которая позволяет монтировать удаленные системы и работать с ними так, как будто это файловая система на вашем компьютере (что-то на подобие /proc и /sys). Если вы читали предыдущую статью Установка и настройка NFS сервера и NFS клиента в [K]Ubuntu., то вам это покажется знакомым. В отличии от NFS, в sshfs все данные передаются через зашифрованное SSH–соединения. Но с другой стороны sshfs работает немного медленее. В любом случае, можно выделить несколько положительных сторон sshfs:

  • очень легка в использовании (не нужно ничего делать на сервере);
  • все данные передаются в зашифрованном виде;
  • хорошо работает при медленном и нестабильном соединении (пересоединяется в случае разрыва соединения);

Установка.

Как я уже говорил, ничего дополнительно на сервере делать не нужно. Все что надо, это установленный и настроеный OpenSSH. Поэтому переходим к настройкам на стороне клиента. FUSE был включен в ядро начиная лишь с версии 2.6.14. Если у вас версия ядра 2.6.14 или выше (чтобы узнать, запустите uname -r), можете вздохнуть с облегчением. Если нет, придется скопилировать модуль fuse и подключить его к ядру:

$sudo modprobe fuse
Теперь можно переходить к установке FUSE и sshfs. Если ваша система не предоставляет бинарных пакетов, вам придется скачать исходники и скомпилировать самому. Скачать можно здесь — FUSE и sshfs-fuse.
В Ubuntu или Kubuntu и Debian testing этого делать не нужно. Все сделали за вас. Нужно лишь установить пакеты:

$sudo apt-get install sshfs

(fuse поставится вместе с зависимостями)

Теперь, поскольку sshfs предназначен для использования от имени обычного пользователя (не рута), добавьте себя (возможно и других пользователей) в группу fuse:

$sudo usermod -a -G fuse имя_пользователя

После этого нужно перелогиниться чтобы попасть в группу fuse.

Использование.

Создайте точку монтирования, скажем, папку local в домашней директории

$cd ~
$mkdir local

Монтируем:

$ sshfs [email protected]:/home/data /home/serhiy/local

(заметьте, монтирование происходит от имени обычного юзера (нет sudo перед командой монтирования))

здесь:
alien — это имя пользователя на удаленной машине
10.52.31.1 — IP удаленного компьютера
/home/data — директория на удаленном компьютере
/home/serhiy/local — точка монтирования на компьютере пользователя, куда будет монтирована /home/data.

После этого должно появиться приглашение:

The authenticity of host '10.52.31.1 (10.52.31.1)' can't be established.
RSA key fingerprint is 28:a2:c5:8c:93:db:3c:95:1c:e0:90:c8:71:7f:53:43.
Are you sure you want to continue connecting (yes/no)? yes
[email protected]'s password:
(введите пароль пользователя alien). Все. Заходим в /home/serhiy/local, гды вы должны увидеть содержимое /home/data удаленного компьютера.

Если после ввода пароля Вы увидите запись (у меня она появилась при входе с Kubuntu Edgy Eft на Kubuntu Dapper Drake):

$fusermount: failed to open /dev/fuse: Permission denied
это может быть связано с багом fuse. Для решения этой проблемы измените группу файла /dev/fuse на fuse:

$sudo chgrp fuse /dev/fuse

Поработав, можно и отмонтировать:

$ fusermount -u ~/local
Как я уже упомянул, после запуска команды на монтирование приходится вводить пароль SSH (если вы не настроили доступ по ключам до этого). Это не очень удобно. Поэтому, для большего удобства, настроим соединение с помощью ключей. Для этого на компьютере пользователя:

$cd ~
$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/serhiy/.ssh/id_rsa):ENTER 
Enter passphrase (empty for no passphrase): ENTER 
Enter same passphrase again:  ENTER
Your identification has been saved in /home/serhiy/.ssh/id_rsa.
Your public key has been saved in /home/serhiy/.ssh/id_rsa.pub.
The key fingerprint is:
fa:e7:7c:e1:cb:7b:66:8b:67:07:05:99:7f:05:b9:4a
Все. Ключи были созданы в папке .ssh. После этого нужно добавить ключ id_rsa.pub в список авторизованных ключей на сервер:

$cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat - >> .ssh/authorized_keys"

Замените alien и 10.52.31.1 на имя пользователя и IP удаленного сервера.

Теперь, при следующей попытке, вы последний раз введете пароль и после этого уже будете заходить без пароля. Чтобы проверить, отмонтируйте

$ fusermount -u ~/local


и примонтируйте заново.
Источник http://linux-ru.blogspot.com/2007/03/sshfs-ssh_12.html

Запись опубликована в рубрике *Unix,*Linux. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Я не спамер This plugin created by Alexei91