Невозможно смонтировать что-либо в определенном локальном каталоге, используя sshfs

Я использую sshfs для локального монтирования удаленного каталога. Я использую Xubuntu 16.04 внутри виртуальной машины VirtualBox. Вчера, когда все было установлено, я сохранил состояние виртуальной машины и закрыл ее; Я перезагрузил сохраненное состояние этим утром. Я полагаю, что тот факт, что я использую виртуальную машину, на самом деле не имеет отношения к решению проблемы (так как это случилось однажды, и мне удалось это исправить, я просто не могу вспомнить, как), но я добавляю это, чтобы объяснить, как происходит повреждение могло случиться.

Теперь ничто не будет монтироваться в локальном каталоге, который использовался, команда никогда не вернется. Я могу иметь любой каталог с удаленного сервера, смонтированный в других каталогах на моем локальном компьютере, но ничто не будет подключено к тому, который я использовал вчера. Я перезагрузил компьютер Xubuntu и полностью отключил его, но безрезультатно. Я также перезапустил удаленный сервер. Я могу использовать SSH и на удаленном сервере.

Я убедился, что в проблемном каталоге ничего не смонтировано (fusermount -u problematic_directory и sudo umount -l problematic_directory).

Следующая таблица подводит итог ситуации (original_dir - это каталог, который я обычно монтирую; arbitrary_dir - любой другой каталог):

LOCAL             REMOTE            WORKS
original_dir  <-- original_dir      NO
arbitrary_dir <-- original_dir      YES
original_dir  <-- arbitrary_dir     NO
arbitrary_dir <-- arbitrary_dir     YES

Это указывает на что-то неправильно настроенное на моей локальной машине, поскольку удаленному не кажется, какое из его каталогов я монтирую.

В /proc/mounts нет информации о original_dir, и я удалил и заново создал (пустой) каталог, но ничего не изменилось.

Я также удалил sshfs и openssh-client и переустановил его, тоже не повезло.

Вывод команды при запуске в режиме отладки:

$ sshfs -o debug,sshfs_debug,loglevel=debug,idmap=user me@remoteip:/home/me/project-share /home/me/project-share/
SSHFS version 2.5
FUSE library version: 2.9.4
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-ologlevel=debug> <-2> <me@remoteip> <-s> <sftp>

Она висит так всегда.

Результат успешного монтирования выглядит следующим образом:

$ sshfs -o debug,sshfs_debug,loglevel=debug,idmap=user me@remoteip:/home/me/project-share /home/me/another-dir/
SSHFS version 2.5
FUSE library version: 2.9.4
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-ologlevel=debug> <-2> <me@remoteip> <-s> <sftp>
debug1: Reading configuration data /home/me/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to remoteip [remoteip] port 22.
debug1: Connection established.
debug1: identity file /home/me/.ssh/id_rsa type 1
...
debug1: Offering RSA public key: /home/me/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
debug1: Authentication succeeded (publickey).
Authenticated to remoteip ([remoteip]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending subsystem: sftp
Server version: 3
Extension: posix-rename@openssh.com <1>
...

К сожалению, я не могу использовать другую точку монтирования локально, так как мне нужен одинаковый путь для локальных и удаленных каталогов и я не могу изменить путь к удаленному каталогу.

РЕДАКТИРОВАТЬ: Я нашел обходной путь: смонтировать удаленный каталог в другой каталог, а затем создать original_dir в качестве символической ссылки:

$ mkdir ~/original_dir_mnt_point
$ sshfs -o idmap=user me@REMOTE_IP:~/original_dir ~/original_dir_mnt_point/
$ ln -s ~/original_dir_mnt_point/ ~/original-dir

Это будет работать только однако, если символическая ссылка не создана к тому времени, когда мы вызываем sshfs, то символическая ссылка должна быть воссоздана для каждой повторной установки. Я все еще хочу исправить это должным образом.

4
задан 10 July 2017 в 11:55

2 ответа

Для совместно используемых файлов или папок нужны дополнительные драйверы, "Вставляют Гостевую Дополнительную опцию образа CD", способ по прибытию виртуальной машины от блокирования передач файлов.

0
ответ дан 1 December 2019 в 11:19

У меня такая же проблема. Эта проблема беспокоила меня сутки, но теперь она решена. Он зависает, как

$ sshfs -p 22 admin@127.0.0.1:/home/admin/fileShare/dart/2.5.0/dart-sdk 
$HOME/dockerSahreFile/dart-sdk -o allow_other -o debug -o sshfs_debug
 SSHFS version 2.10
 FUSE library version: 2.9.7
 nullpath_ok: 0
 nopath: 0
 utime_omit_ok: 0
 executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-oPort=22> <-2> <admin@127.0.0.1> <-s> <sftp>

, и другой вывод работает, например,

 $ sshfs -p 22 admin@127.0.0.1:/home/admin/fileShare/dart/2.5.0/dart-sdk $HOME/otherDockerSahreFile/dart-sdk -o allow_other -o debug -o sshfs_debug

Иногда я выполнял его несколько раз, например:

diskutil umount force $HOME/dockerSahreFile/dart-sdk
 or 
 diskutil unmount force $HOME/dockerSahreFile/dart-sdk

Эта проблема была решена.

0
ответ дан 22 April 2020 в 12:03

Другие вопросы по тегам:

Похожие вопросы: