Смонтировать удаленный каталог с помощью SSH
Как смонтировать удаленный каталог, используя SSH
быть доступным так же, как если бы это был локальный каталог?
4 ответа
Сначала установите модуль:
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
наслаждаться
(Проверено на Ubuntu 14.04)
Исходя из моих экспериментов, явное создание группы предохранителей и добавление в нее вашего пользователя НЕ требуется для монтирования файловой системы 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/
Установить 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
Хотя это не совсем ответ на ваш вопрос, но я просто хотел упомянуть, что вы можете достичь той же цели, используя "sftp". Просто внутри адресной строки файлового менеджера введите эту команду:
sftp://remoteuser@111.222.333.444/remote/path
Простой способ запустить sshfs mounts при запуске - также добавить его в 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/
Я хотел бы предупредить, что, похоже, по умолчанию только пользователь, настроивший монтирование, может получить доступ к удаленному каталогу.
Я установил удаленный каталог и создал crontab с
sudo crontab -e
. Позже я узнал, что файл резервной копии вообще не записывал удаленный каталог. Потом я узнал, что не могу
cd
на удаленный диск как
root
! В итоге я создаю ту же задачу с
crontab -e
и все работает как я ожидал.