Добавлена статья о sshfs
This commit is contained in:
116
content/articles/sshfs/index.md
Normal file
116
content/articles/sshfs/index.md
Normal 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/` автоматически монтируется при загрузке.
|
||||
Reference in New Issue
Block a user