22 апреля 2012 г.

Поднимаем шару в Linux

Задание: настроить сетевой диск, который будет физически находиться на сервере, но с которым можно будет работать, как с родным клиенте. Подключать в определённый каталог на клиенте по хоткею.

Исходники: системный блок с двумя HDD на свободных 145 и 500 Гб, которые нужно объединить в один, и рабочий ноутбук, для которого всё это и затевается.

Алгоритм:
1. объединяем два винчестера в один и настраиваем ssh-сервер (сервер)
2. настраиваем sshfs на клиенте, настраиваем ssh-авторизацию без пароля (клиент)

Решение:
1. Ставим на сервер убунту, туда же пакеты openssh-server, mhddfs, опционально: mc, htop. Объединяем два винчестера с точками монтирования (созданы при установке): /500 и /145 в один /home/username/my_share, прописав нужное в /etc/fstab:
mhddfs#/500,/145 /home/username/my_share fuse defaults,allow_other 0 0

2. Ставим пакет sshfs. Настраиваем ssh-авторизацию без ввода пароля:
Запускаем ssh-keygen с параметром -t rsa
ssh-keygen -t rsa
Таким образом, мы сгенерируем ключ. После запуска этой команды вам будет предложено ввести имя файла ключа, нажимаем Enter оставляя файл значение по умолчанию. Теперь нам надо скопировать на сервер публичную часть ключа. Делается это при помощи ssh-copy-id:
user:~# ssh-copy-id username@example_ip
password: пишем
Теперь чтобы получить ssh-доступ без пароля к указанной машине просто пишем:
ssh username@example_ip

Монтируем шару, а именно пишем скрипт с командой:
sshfs username@server_ip:/remote_dir ~/local_mount_point
и вешаем на хоткей на клиенте. Отключаем через:
sudo umount ~/local_mount_point

Примечание: Можно настроить права, чтобы отключать не от рута:
# Настройка прав доступа
sudo adduser username fuse
sudo chown root:fuse /dev/fuse

Теперь сетевой диск монтируется одной кнопкой.