Добавлена статья о sshfs

This commit is contained in:
2025-03-09 13:49:52 +07:00
parent 5e69e952ec
commit dbab12d1b9
2 changed files with 116 additions and 0 deletions

View File

@@ -0,0 +1,116 @@
+++
title = "SSHFS: Монтирование удаленных файловых систем через SSH"
date = 2025-03-09
description = "SSHFS (SSH File System) позволяет монтировать удаленные файловые системы через SSH, обеспечивая безопасный и удобный доступ к файлам на удаленных серверах."
[taxonomies]
tags = ["sshfs", "ssh", "server"]
[extra]
quick_navigation_buttons = true
toc = false
mermaid = false
social_media_card = "social_cards/index-sshfs.webp"
+++
## Введение
[SSHFS](https://github.com/libfuse/sshfs) это мощный инструмент для работы с удаленными файлами, обеспечивающий удобство и безопасность благодаря использованию SSH. Он полезен для резервного копирования, совместной работы и доступа к файлам на удаленных серверах без сложной настройки.
## Установка SSHFS
```bash
sudo pacman -S sshfs
```
## Монтирование удаленной файловой системы
1. Создайте локальную папку для монтирования:
```bash
sudo mkdir /mnt/sshfs
```
2. Подключите удаленную файловую систему:
```bash
sshfs user@remote_host:/remote_folder /mnt/sshfs
```
- `user` имя пользователя на удаленном сервере
- `remote_host` IP-адрес или доменное имя сервера
- `/remote_folder` каталог, который нужно смонтировать
- `/mnt/sshfs` локальная папка, куда будет смонтирован удаленный ресурс
Если используется нестандартный порт указать можно так:
```bash
sshfs -p 223 user@remote_host:/remote_folder /mnt/sshfs
```
## Автоматическое монтирование при загрузке
Добавьте в `/etc/fstab` строку:
```ini
user@remote_host:/remote_folder /mnt/sshfs fuse.sshfs defaults,_netdev,user,idmap=user,allow_other,reconnect 0 0
```
Создайте файл с учетными данными `~/.sshfs_credentials`:
```bash
echo "password" > ~/.sshfs_credentials
chmod 600 ~/.sshfs_credentials
```
с содежимым:
```ini
username=ТВОЙ_ЛОГИН
password=ТВОЙ_ПАРОЛЬ
```
Монтирование с учётом `~/.sshfs_credentials`
```bash
sshfs -o password_stdin,credentials=~/.sshfs_credentials user@remote_host:/remote_folder /mnt/sshfs
```
## Размонтирование файловой системы
```bash
fusermount -u /mnt/sshfs
```
**Дополнительные параметры**
- `-o reconnect` автоматически переподключаться при разрыве связи
- `-o allow_other` разрешить доступ другим пользователям системы
- `-o idmap=user` сопоставлять идентификаторы пользователей
## Монтирование с помощью systemd
{{ admonition(type="danger", icon="tip", title="Внимание!", text="Авторизация на сервере должна проходить по ключу") }}
Создаём юнит-файл systemd `~/.config/systemd/user/server.service`
```ini
[Unit]
Description=Mount /mnt/sshfs/
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=sshfs -p 666 user@remote_host:/remote_folder /mnt/sshfs
ExecStop=umount /mnt/sshfs/
[Install]
WantedBy=default.target
```
# Запуск и автозагрузка
```bash
systemctl --user daemon-reload
systemctl --user enable now sshfs-myserver.mount
```
Теперь `/mnt/sshfs/` автоматически монтируется при загрузке.