Монтирование удаленного доступа к файлам по ssh

Автор: | 21.11.2017

Иногда возникает необходимость использовать ssh соединение, для доступа к файлам удаленного ПК, но это не всегда удобно. Особенно, если такая необходимость возникает часто. Гораздо удобнее использовать удаленные папки, если они будут представлены,  как локальные директории. Это даст нам возможность копировать, удалять, редактировать файлы, как-будто это локальные файлы и папки. Для этого нам понадобиться установить утилиту sshfs, с помощью которой можно примонтировать ресурсы удаленного ПК в локальную директорию.

Установим утилиту sshfs, под root правами root:

apt-get install sshfs

Далее нужно добавить пользователя в группу fuse для того, чтобы пользователь мог монтировать и отмонтировать ssh ресурсы.(в зависомсти от вашего дистрибутива)

usermod -a -G fuse $USER

Необходимо создать директорию, в которую будем монтировать папку(и) с удаленного ПК:

mkdir /home/user/mount_Dir

Командой задаем параметры для подключения к удаленному ПК используя IP-адрес, логин и пароль. Указываем директорию к которой хотим получить доступ и директорию в которую будет примонтирована удаленная папка:

sshfs user@192.168.15.100:/dir/remote_dir /home/user/mount_Dir

где user – Логин для подключения к удаленному ПК по ssh
192.168.15.100 – ip адрес (доменное имя) удаленного ПК
/dir/remote_dir – Папка на удаленном компьютере, которую будем монтировать
/home/user/mount_dir – Директория в которую будет монтироваться удаленная папка

Для пользователей Windows, можно использовать утилиту dokan sshfs скачать ее можно по этой ссылке или по этой

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

Установим утилиту Automount FUSE

apt-get install afuse

Далее требуется запустить ее с нужными параметрами:

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

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

Конечно, не всегда удобно писать полный адрес и параметры доступа к удаленному ПК user@files.example.ru:22, поэтому лучше создать файл с настройками доступа ssh.

cat ~/.ssh/config
Host file-storage
Hostname files.example.ru
Port 22 # может быть использован нестандартный порт
HostKeyAlias files
User admin

Теперь возможно заходить на удаленный ПК по короткому имени files как в ssh, так и в sshfs:
> ssh files              # заходим на сервер никаких доп.настроек не требуется
> ls ~/sshfs/files   # просмотр корневой папки ПК.

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

Скрипт для автозапуска afuse

$ cat ~/bin/afuse.sh
#!/bin/sh
if [ ! -z `ls -d /tmp/afuse-* 2>/dev/null` ]; then
echo ‘Afuse is already running’;
else
/usr/bin/afuse -o mount_template=”sshfs %r:/ %m” -o unmount_template=”fusermount -u -z %m” ~/sshfs/
fi

Осталось добавить его в crone.

 

Добавить комментарий