Смонтировать удаленный каталог с помощью SSH


69

Как смонтировать удаленный каталог, SSHчтобы он был доступен так же, как если бы это был локальный каталог?

Ответы:


78

Сначала установите модуль:

sudo apt-get install sshfs

Загрузите его в ядро:

sudo modprobe fuse

Установка разрешений (версии Ubuntu <16.04):

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

Я немного запутался ... в sshfsкоманде, я думаю, что локальный каталог точки монтирования назван remoteDir, и когда я на ssh-сервере, есть каталог, /home/maythuxServ/Mountedкоторый не монтируется локально, и я не могу сказать, или все равно, монтируется ли он где-либо еще?
Фолькер Сигел

3
Я пропустил некоторые из этих шагов под 14.04 , когда я использовал следующее руководство: help.ubuntu.com/community/SSHFS
Hemm

4
Группа предохранителей не нужна (Ubuntu 16.04, ноябрь 2017 г.): stackoverflow.com/questions/35635631/ubuntu-15-10-no-fuse-group
Мэтт

2
18.04 я пропустил полный 2-й блок - установка разрешений и все работает нормально.
Оптимист

3
Половина этого ответа либо не работает, либо устарела. Пожалуйста, рассмотрите возможность обновления.
Луис де Соуза

18

Настройте аутентификацию на основе ключей 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)


5

Исходя из моих экспериментов, явное создание группы предохранителей и добавление в нее вашего пользователя НЕ требуется для монтирования файловой системы ssh.

Подводя итог, вот шаги, скопированные с этой страницы:

  1. устанавливать 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/

  1. И, наконец, размонтировать ...

$ fusermount -u /home/johndoe/sshfs-path/


3

Установить 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.