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

Монтировать удалённые каталоги можно используя протоколы Раздел FTP: Протокол FTP, серверы, клиенты FTP для Linux и Windows (требует curlftpfs), WebDav (fusedav), GMail (gmailfs), Flickr(flickrfs), SSH File Transfer Protocol (SFTP) настройка под хостинг Apache(sshfs).

Монтирование удалённой 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+ странах.