Sshfs (український)

Порада: Якщо часто доводиться монтувати файлові системи sshfs, то вас можуть зацікавити помічники sshfs, такі як qsshfs AUR. sftpman. sshmnt AUR або fmount.py.

монтування

Для того, щоб примонтировать каталог, використовуючи SSH, користувач повинен мати доступ до нього. Монтування віддаленої директорії:

Де -p 9876 є номером порту, -C - використання стиснення. Для додаткових опцій дивіться розділ # Опції.

Якщо не вказано шлях, то за замовчуванням він вказує на віддалену домашню директорію користувача. Ім'я користувача за замовчуванням і опції можуть бути задані в

SSH запросить пароль, якщо необхідно. Якщо ви не хочете постійно вводити пароль, прочитайте: як використовувати ключ аутентифікації RSA з SSH або SSH Keys.

Порада: Можна використовувати Google Authenticator c sshfs для додаткової безпеки.

Розмонтування

Щоб демонтувати віддалену систему:

sshfs може автоматично конвертувати ваш і віддалений ідентифікатор користувача. Використовуйте параметр idmap = user. щоб перевести UID підключається користувача до віддаленому користувачеві myuser (GID залишається недоторканим):

Якщо вам потрібно більш точний контроль над перекладом ідентифікаторів між локальним і віддаленим користувачем, то зверніть увагу на опції idmap = file. uidfile і gidfile.

Зміна кореневого каталогу

Ви можете прив'язати певного користувача до конкретної директорії на віддаленій системі. Це може бути виконано шляхом редагування / etc / ssh / sshd_config.

Примітка: Власником chroot директорії повинен бути привілейований користувач, інакше ви не зможете підключитися.

Дивіться SFTP chroot. Також зверніть увагу в sshd_config (5) на Match. ChrootDirectory і ForceCommand.

автомонтірованіе

Автоматичне монтування відбувається при завантаженні або за запитом (для отримання доступу до каталогу). У будь-якому випадку настройка буде відбуватися в / etc / fstab.

Примітка: Запам'ятайте, що автоматичне монтування виконується з правами суперкористувача, тому ви не можете використовувати .ssh / config звичайного користувача.

Щоб дозволити суперкористувачеві використовувати ключ SSH звичайного користувача, потрібно вказати повний шлях в опції IdentityFile.

Найголовніше - використовуйте хоча б раз кожну примонтировать файлову систему sshfs в режимі суперкористувача. таким чином підписи хоста будуть додані в файл /root/.ssh/known_hosts.

За запитом

За допомогою systemd можна монтувати за запитом, використовуючи / etc / fstab.

Головні опції - noauto, x-systemd.automount, _netdev.

  • noauto - монтування не відбуватиметься при завантаженні.
  • x-systemd.automount - робить магію, пов'язану із запитом.
  • _netdev - показує, що це мережевий пристрій, а не блочне (без цієї опції може з'явиться помилка "No such device")

Примітка: Після редагування / etc / fstab. (Пере) запустіть відповідний сервіс: systemctl daemon-reload systemctl restart <цель> ; можна знайти <цель>. використовуючи systemctl list-unit-files --type automount

Існує ще 2 способи для створення такого типу монтування. Вони не потребують редагування / etc / fstab щоб створити нову точку монтування. Замість цього, звичайні користувачі зможуть створювати точки монтування, просто намагаючись отримати до них доступ (наприклад, ls

Під час завантаження

Приклад того, як використовувати sshfs для монтуванні віддаленої файлової системи за допомогою / etc / fstab

Для прикладу візьміть лінію з fstab

Вище наведена рядок буде працювати тільки в тому випадку, якщо ви використовуєте SSH ключ. Дивіться SSH keys

Якщо ви не єдиний користувач, який використовує sshfs:

Дуже важливо переконається в тому, що параметр _netdev встановлений, щоб бути впевненим в доступності мережі перед монтуванням.

Безпечний доступ користувачів

Коли використовується автомонтірованіе через / etc / fstab. файлова система буде монтуватися від суперкористувача. За замовчуванням, це призводить до небажаних результатів, якщо ви хочете отримувати доступ як звичайний користувач і обмежити доступ іншим користувачам.

  • allow_other - дозволяє іншим користувачам, відмінним від вмонтовує (тобто звичайним користувачам), отримувати доступ до того, що монтується.
  • default_permissions - дозволяє ядру перевіряти права, інакше кажучи використовувати актуальні права на віддаленої файлової системи. А також забороняє доступ всім, крім оголошених в allow_other.
  • uid. gid - встановлює власника файлів відповідно до переданих значеннями; uid - це числовий ідентифікатор користувача, gid - числовий ідентифікатор групи користувача.

Вирішення проблем

Контрольний список

Для початку, прочитайте наступну сторінку вікі Secure Shell (український) # Перевірка. Пункти, які слід перевірити:

1. Чи отримує ваш логін SSH додаткову інформацію від сервера, наприклад, файл / etc / issue. Це може заплутати SSHFS. Вам слід тимчасово відключити серверний файл / etc / issue.

2. Майте на увазі, що більшість статей щодо усунення неполадок, пов'язаних з SSH, не пов'язані з Systemd. Часто визначення в / etc / fstab помилково починаються з sshfs # user @ host: / mnt / server / folder. fuse. замість того, щоб використовувати наступний синтаксис user @ host: / mnt / server / folder. fuse.sshfs. x-systemd.

3. Переконайтеся в тому, що власник вихідної папки і її вмісту на сервері володіє відповідний користувач:

4. Серверна ідентифікатор користувача може відрізнятися від відповідного клієнтського. Очевидно, що імена користувачів будуть однаковими. Вам просто потрібно подбати про клієнтському ідентифікатор. SSHFS буде перетворювати ідентифікатор користувача за допомогою наступного параметра:

5. Перевірте, щоб клієнт мав права на цільову точку монтування (каталог). Дана директорія повинна мати такий же ідентифікатор, як в настройках монтування SSHFS.

6. Перевірте, що точка монтування (папка) порожня. За замовчуванням, ви не можете монтувати каталоги SSHFS в непусті директорії.

7. Якщо ви хочете автоматично монтувати об'єкти SSH, використовуючи публічний ключ аутентифікації (без пароля), через / etc / fstab. то використовуйте наступний рядок, як приклад:

і, з огляду на наступний приклад налаштувань.

  • SERVER = Ім'я сервера (serv)
  • USER_S = Ім'я користувача сервера (pete)
  • USER_C = Ім'я користувача клієнта (pete)
  • USER_S_ID = Ідентифікатор користувача сервера (1004)
  • USER_C_ID = Ідентифікатор користувача клієнта (1000)
  • GROUP_C_ID = Ідентифікатор групи користувача клієнта (100)

Ви можете отримати ім'я користувача та групи за допомогою наступної команди:

Ось кінцева рядок для монтування SSHFS в / etc / fstab.

8. Якщо вам відомі ще проблеми для цього контрольного списку, то, будь ласка, додайте їх вище.

Скидання з'єднання бенкетом

Примітка: Коли ви посилаєте більше одного аргументу в sshfs, вони повинні розділятися комами. Наприклад: 'sshfs -o sshfs_debug, IdentityFile = user @ server. ')

Віддалений хост відключений

Якщо це повідомлення з'являється безпосередньо після спроби використовувати sshfs.

  • Спочатку переконайтеся, що на віддаленому комп'ютері встановлений sftp. Нічого не буде працювати, поки пакет не буде встановлено.
  • Потім спробуйте перевірити коректність шляху до Subsystem sftp. зазначеного в / etc / ssh / sshd_config на віддаленій машині.

Звісно додатків (наприклад, Gnome Files, Gedit)

Важливо: Цей спосіб запобігає від забруднення список останніх використаних файлів і може привести до можливих помилок запису.

Якщо у вас зависають (не відповідають) додатки, вам, можливо, доведеться відключити захист від запису файлу

Дивіться наступний звіт про помилку для більш докладної інформації та / або рішення.

Проблеми з монтуванням fstab

Для отримання докладної налагоджувальної інформації, додайте наступне в параметри монтування:

Note: \ 040 - пробіл, який використовується fstab для поділу полів.

Щоб бачити зневадження, запустивши при цьому mount -av. видаліть наступне:

Дивіться також

Схожі статті