SSHFS
SSHFS – подключение диска с другого компьютера по ssh How To Use SSHFS to Mount Remote File Systems Over SSH
0. Настраиваем SSH подключение по сертификатам с машиной, к которой будем подключаться
ssh-keygen -o -a 256 -t ed25519 -C "$(hostname)-$(date +'%d-%m-%Y')" ssh-copy-id user@myhost.ru -p55555 ssh -p55555 user@myhost.ru
1. Устанавливаем sshfs на Linux. Может потребоваться подключение дополнительных репозиториев.
sudo apt update
Debian
sudo apt install sshfs
RHEL.
sudo dnf install fuse-sshfs
Устанавливаем на Windows SSHFS for Windows
2. Создаём папку в /mnt/
sudo mkdir /mnt/droplet
3. Подключаем диск с удалённого сервера
sudo sshfs -o allow_other,default_permissions sammy@your_other_server:~/ /mnt/droplet
Тильду можно убрать
Опция | Описание |
---|---|
-o | предшествует различным параметрам монтирования (это то же самое, что и при обычном выполнении команды mount для монтирования дисков без SSH). В данном случае вы используете allow_other, чтобы разрешить другим пользователям доступ к этому монтированию, и default_permissions (чтобы в остальном оно использовало обычные разрешения файловой системы). |
sammy@your_other_server:~/ | указывает полный путь к удаленному каталогу, включая имя удаленного пользователя, sammy, удаленный сервер, your_other_server, и путь, в данном случае ~/ для домашнего каталога удаленного пользователя. Здесь используется тот же синтаксис, что и в SSH или SCP. |
/mnt/droplet | путь к локальному каталогу, используемому в качестве точки монтирования. |
Размонтирование диска
sudo umount /mnt/droplet
Автоматическое монтирование диска
Открываем файл на редактирование
sudo vim /etc/fstab
Добавляем в файл
sammy@your_other_server:~/ /mnt/droplet fuse.sshfs noauto,x-systemd.automount,_netdev,reconnect,identityfile=/home/sammy/.ssh/id_rsa,allow_other,default_permissions 0 0
Опция | Описание |
---|---|
sammy@your_other_server:~/ | удаленный путь |
/mnt/droplet | локальный путь |
fuse.sshfs | указывает драйвер, используемый для монтирования этого удаленного каталога. |
noauto,x-systemd.automount,_netdev,reconnect | это набор опций, которые совместно обеспечивают постоянное монтирование сетевых дисков в случае разрыва сетевого соединения с локальной или удаленной машины. |
identityfile=/home/sammy/.ssh/id_rsa | указывает путь к локальному SSH-ключу, чтобы удаленный каталог мог быть смонтирован автоматически. Обратите внимание, что в этом примере предполагается, что и локальное, и удаленное имя пользователя - sammy - относится к локальному пути. Это необходимо, потому что /etc/fstab запускается от имени root и в противном случае не будет знать, какие SSH-конфигурации имени пользователя проверять на наличие ключа, которому доверяет удаленный сервер. |
allow_other,default_permissions | используйте те же разрешения, что и в команде mount выше. |
0 0 | означает, что удаленная файловая система никогда не должна сбрасываться или проверяться локальной машиной в случае ошибок. Эти параметры могут отличаться при монтировании локального диска. |
Примечание: Если вам нужно смонтировать удаленный каталог с помощью SSHFS, не требуя прав sudo, вы можете создать группу пользователей под названием fuse на локальной машине с помощью sudo groupadd fuse, а затем добавить вашего локального пользователя в эту группу с помощью sudo usermod -a -G fuse sammy.
Ошибки
Transport endpoint is not connected При выполненнии
ls /mnt
то
sudo umount -l /mnt/aeza
Connection reset by peer
Если вы получили сообщение Connection reset by peer, убедитесь, что вы скопировали свой SSH-ключ на удаленную систему. sshfs использует обычное SSH-соединение в фоновом режиме, и если вы впервые подключаетесь к удаленной системе по SSH, вам может быть предложено принять отпечаток ключа удаленного узла.