我会尽量保持简单。
有效的方法如下:当我以 root 身份使用 sshfs 挂载 root@wherever:/。
但如果我是 root 并尝试
sshfs test@somewhere:/ /home/me/test -o idmap=user
或者
sshfs test@somewhere:/ /home/me/test -o idmap=allow_other
我没有收到任何错误消息,但如果我尝试查看已安装的“测试”目录,我会收到:
ls: reading directory test: Permission denied
另外,当我是 root 时,我可以通过 ssh 进入 test@somewhere,没有问题。我尝试将“user_allow_other”添加到 /etc/fuse.conf,但我认为这并不重要,因为我是 root。
奇怪的是,如果我以非 root 身份安装 test@somewhere,它一分钟前还可以工作,但在我打开一个新终端后,它就停止工作了。
需要说明的是,当我是 root 时,我想挂载 somebody@wherever:/。我不认为这是密码或“密钥”问题,因为我使用不同的远程服务器得到了相同的结果。
我只是给了远程“测试”目录一个文件。我在服务器上使用“测试”,我知道它可以正常工作,直到我弄清楚我做错了什么。
我的本地机器是 Debian Squeeze。我确信解决方案很简单,但 Google 中的大多数问题都试图做相反的事情(以 root 身份工作,但以非 root 身份工作则不行),所以我认为这值得一问。
答案1
问题出在正斜杠上:
sshfs test@somewhere:/ /home/me/test
本来应该:
sshfs test@somewhere: /home/me/test
换句话说,用户“test”无权访问根目录。哎呀。我以为“:/”会将我带到用户“test”的根目录,但显然不是。
我按照以下步骤想到了这个想法: http://www.howtoforge.com/mounting-remote-directories-with-sshfs-on-debian-squeeze
答案2
尝试mkdir /home/me/test/lalal
检查您是否有权访问该目录。