Монтирование удалённой папки (FTP, SSH) в Linux

Монтирование удалённой FTP ресурса

Для монтирования FTP требуется пакет curlftpfs.

Debian, Ubuntu
apt install curlftpfs
 
CentOS 7
yum install curlftpfs
 
CentOS, Fedora, AlmaLinux, and Red Hat:
dnf install curlftpfs

Как использовать:

curlftpfs ftp://[пользователь]:[пароль]@имя_сервера /media/ftp [опции]
 
Пример:
curlftpfs ftp://backup:123task@159.xxx.xxx.xxx /home/darkfire/ftp_share

или

curlftpfs имя_сервера /media/ftp -o user=пользователь:пароль [другие_опции]

Отмонтируем

fusermount -u /media/ftp

Как примонтировать папку по sftp (sshfs)?

Рассмотрим вариант монтирование удаленной директории с использованием протокола SSH File Transfer Protocol (SFTP) настройка под хостинг Apache.

В ОС должна быть установлена поддержка FUSE: пакет sshfs - содержащий клиента файловой системы, основанный на протоколе передачи файлов SSH.

Установим

CentOS
yum install fuse-sshfs 
 
Debian, Ubuntu
apt install sshfs
adduser yourusername fuse
$ mkdir ~/sftpshare

Синтаксис подключения:

$ sshfs hostuser@remote.host.or.ip:/path/to/directory ~/sftpshare

Отмонтируется удаленный ресурс командой fusermount:

$ fusermount -u ~/sftpshare

Автоподключение и перемонтирование удаленных папок. Для этого есть несколько вариантов:

  • Использовать опцию reconnect
    sshfs -o reconnect hostuser@remote.host.or.ip:/path/to/directory ~/sftpshare

    Ключ -C (equivalent to '-o compression=yes')включает сжатие (немного экономит трафик и ускоряет соединение)

    sshfs -C -o reconnect hostuser@remote.host.or.ip:/path/to/directory ~/sftpshare

autofs

  • Прописать в /ets/fstab
  • autofs
    # apt search autofs
    autofs - Переходный пакет от autofs к autofs5                                                                                    
    autofs5 - Встроенный в ядро автоматический монтировщик для Linux, версия 5. 
  • Afuse - An automounter implemented with FUSE. Установим и настроим Afuse.
    # apt install afuse
    $ mkdir ~/sshfs/

    Запустим демон afuse, кторый будет отслеживать все обращения к директории ~/sshfs/:

    afuse -o mount_template="sshfs %r:/ %m" -o unmount_template="fusermount -u -z %m" ~/sshfs/

    После чего все обращения к файлам и папкам в папке ~/sshfs/ будут вызывать монтирование соответствующей папки в ~/sshfs/. После чего обращение пойдет дальше на удаленный хост. Самое главное для нас — все происходит абсолютно прозрачно при первом обращении к нужной папке из любой программы.

Например: ls ~/sshfs/tmpvar@foobarhost.com вначале малость потормозит, потом покажет содержимое корневой папки / сервера foobarhost.com. Конечно, не всегда удобно писать полный адрес и параметры доступа к серверу tmpvar@foobarhost.com:22, поэтому мы их перенесем в настройки доступа ssh.

cat ~/.ssh/config 
Host file-storage
	Hostname	filestorage.server.com
	Port		2222           # на сервере может быть использован нестандартный порт
	HostKeyAlias	fs 
	User		admin

Теперь мы можем обращаться к нашему серверу по короткому имени fs как в ssh, так и в sshfs:

ssh fs # заходим на сервер — никаких лишних настроек не надо
ls ~/sshfs/fs # смотрим корневую папку сервера.

Если вы монтите папку первый раз, то у вас появится окошко ввода пароля для доступа к указанному серверу. После того как соединение установлено, окно больше не будет вас докучать. Как вы уже поняли — можно легко сказать окну не вылезать — сделав авторизацию на сервер по ключу.

PQ VPS сервера в 28+ странах.
Dolphin anty. Инглекс (Englex) — онлайн школа английского языка.