我用来sshfs在本地挂载远程目录。我在 VirtualBox 虚拟机中使用 Xubuntu 16.04。昨天,当一切都挂载时,我保存了虚拟机的状态并关闭了它;我今天早上重新加载了保存的状态。我相信我使用虚拟机的事实与解决问题并不真正相关(因为它以前发生过一次并且我设法修复了它,我只是不记得是如何解决的),但我添加它是为了解释腐败是如何发生的可能已经发生了。
现在在使用的本地目录上不会挂载任何东西,该命令将永远不会返回。我可以将远程服务器上的任何目录安装在本地机器的其他目录中,但在我昨天使用的目录中不会安装任何目录。我已经重新启动了 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
Run Code Online (Sandbox Code Playgroud)
这表明我的本地机器配置错误,因为远程机器似乎并不关心我安装了哪个目录。
没有关于original_dirin 的信息/proc/mounts,我已经删除并重新创建了(空)目录,但没有任何改变。
我也删除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>
Run Code Online (Sandbox Code Playgroud)
它永远这样挂着。
成功挂载的输出如下所示:
$ 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>
...
Run Code Online (Sandbox Code Playgroud)
不幸的是,我不能在本地使用其他挂载点,因为我需要本地和远程目录的路径相同,并且不能更改远程目录的路径。
编辑:我找到了一种解决方法:将远程目录安装在另一个目录中,然后创建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
Run Code Online (Sandbox Code Playgroud)
但是,这仅在我们调用时未创建符号链接时才有效,sshfs因此每次重新安装时都需要重新创建符号链接。不过,我仍然想正确解决这个问题。
小智 0
我有同样的问题。这个问题困扰了我一天,不过现在解决了。它挂起来就像
$ 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>
Run Code Online (Sandbox Code Playgroud)
和其他输出工作,如
$ 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
Run Code Online (Sandbox Code Playgroud)
有时,我会多次执行它,例如:
diskutil umount force $HOME/dockerSahreFile/dart-sdk
or
diskutil unmount force $HOME/dockerSahreFile/dart-sdk
Run Code Online (Sandbox Code Playgroud)
这个问题就解决了。
| 归档时间: |
|
| 查看次数: |
773 次 |
| 最近记录: |