Как подключить удаленный каталог с помощью SSH
так же, как если бы он был локальным каталогом?
Сначала установите модуль:
sudo apt-get install sshfs
Загрузите его в ядро
sudo modprobe fuse
Установка разрешений
sudo adduser $USER fuse
sudo chown root:fuse /dev/fuse
sudo chmod +x /dev/fusermount
Теперь мы создадим каталог для монтирования удаленная папка в.
Я решил создать его в своем домашнем каталоге и назвать его remoteDir.
mkdir ~/remoteDir
Теперь я запустил команду для монтирования (mount on home).
sshfs maythux@192.168.xx.xx:/home/maythuxServ/Mounted ~/remoteDir
Теперь он должен быть установлен
cd ~/remoteDir
ls -l
Наслаждайтесь
Настройка аутентификации на основе ключей ssh
Генерация пары ключей на локальном хосте.
$ ssh-keygen -t rsa
Примите все предложения с помощью клавиши ввода.
Скопируйте открытый ключ на удаленный хост:
$ ssh-copy-id -i .ssh/id_rsa.pub user@host
Установите sshfs
$ sudo apt install sshfs
Смонтируйте удаленный каталог
$ sshfs user@host:/remote_directory /local_directory
Не пытайтесь добавить удаленный fs в / etc / fstab
или не пытайтесь монтировать общие ресурсы через /etc/rc.local.
В обоих случаях это не будет работать, так как сеть недоступна, когда init читает / etc / fstab.
Установить AutoFS
$ sudo apt install autofs
Редактировать /etc/auto.master
Закомментировать следующие строки
#+/etc/auto.master.d
#+/etc/auto.master
Добавить новую строку
/- /etc/auto.sshfs --timeout=30
Сохранить и выйти
Редактировать /etc/auto.sshfs
Добавить новую строка
/local_directory -fstype=fuse,allow_other,IdentityFile=/local_private_key :sshfs\#user@remote_host\:/remote_directory
Имя удаленного пользователя обязательно.
Сохранить и выйти
Запустить autofs в режиме отладки
$ sudo service autofs stop
$ sudo automount -vf
Наблюдать журналы удаленного ssh-сервера
$ ssh user@remote_server
$ sudo tailf /var/log/secure
Проверить содержимое локального каталога
Вы должны увидеть содержимое удаленного каталога
Запустить autofs в обычном режиме
Остановите работу AutoFS в режиме отладки с помощью CTRL-C.
Запустите AutoFS в обычном режиме
$ sudo service autofs start
Enjoy
(протестировано Ubuntu 14.04)
Установить sshfs
sudo apt-get install sshfs
Добавить в fstab:
<USER>@<SERVER_NAME>:<server_path> <local_path> fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/<YOUR_USER_NAME>/.ssh/id_rsa,allow_other,default_permissions,rw,nosuid,nodev,uid=1000,gid=1000,nonempty 0 0
Исходя из моих экспериментов, явное создание группы предохранителей и добавление в нее вашего пользователя НЕ требуется для монтирования файловой системы ssh.
Подводя итог, вот шаги, скопированные с этой страницы:
sshfs
$ sudo apt-get install sshfs
2. Создать локальный точка монтирования
$ mkdir /home/johndoe/sshfs-path/
3.Смонтировать удаленную папку /remote/path
в /home/johndoe/sshfs-path/
$ sshfs remoteuser@111.222.333.444:/remote/path /home/johndoe/sshfs-path/
$ fusermount -u /home/johndoe/sshfs-path/
Хотя это не совсем ответ на ваш вопрос, я просто хотел упомянуть, что вы можете достичь той же цели, используя «sftp». Просто в адресной строке файлового менеджера введите следующую команду:
sftp://remoteuser@111.222.333.444/remote/path
Хочу предупредить, что по умолчанию доступ к удаленному каталогу может получить только пользователь, настроивший монтирование.
Я настроил удаленный каталог и создал crontab с помощью sudo crontab -e
. Позже я узнал, что файл резервной копии вообще не записывает удаленный каталог. Затем я обнаружил, что не могу перейти
на удаленный диск как root
! Итак, в конце концов я создаю ту же задачу с crontab -e
, и все работает, как я и ожидал.
Простым способом запуска монтирования sshfs при запуске также является добавление его в root
(или другого пользователя) crontab, например:
@reboot sshfs remoteuser@111.222.333.444:/remote/path /home/johndoe/sshfs-path/
И если вам нужно добавить задержку, вы можете использовать:
@reboot sleep 60 && sshfs remoteuser@111.222.333.444:/remote/path /home/johndoe/sshfs-path/