Я использую 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
, то символическая ссылка должна быть воссоздана для каждой повторной установки. Я все еще хочу исправить это должным образом.
Для совместно используемых файлов или папок нужны дополнительные драйверы, "Вставляют Гостевую Дополнительную опцию образа CD", способ по прибытию виртуальной машины от блокирования передач файлов.
У меня такая же проблема. Эта проблема беспокоила меня сутки, но теперь она решена. Он зависает, как
$ 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
Эта проблема была решена.