无法写入通过SSHFS挂载的文件夹。

我刚刚根据SSHFS(Ubuntu文档)创建了一个文件夹。
sudo apt-get install sshfs
sudo gpasswd -a jm fuse
sshfs -o idmap=user jm@example.com:/path/to/folder folder

然后我发现这个文件夹已经挂载了,但是我无法对其进行写入。权限似乎没问题。

http://pastie.org/1969299

但我甚至尝试过

chmod -R 777 ./folder

还是不行
更新:看起来我只能用NetBeans写不了。但是用LeafPad就可以。

如果您能发布一个简短的记录,展示您尝试写入sshfs文件系统的过程以及产生的错误信息,那将会很有帮助。 - Ryan C. Thompson
3个回答

你的更新指出只有某些应用程序在写入sshfs挂载时遇到问题。你可能需要启用sshfs man page中列出的一个或多个"解决方法"。我建议先尝试"截断"和"重命名"这两个解决方法。
sshfs -o idmap=user -o workaround=truncate:rename jm@example.com:/path/to/folder folder

从您的描述中并不清楚本地用户和远程用户是什么,以及文件的权限是什么。
无论如何,我建议在sshfs命令行中使用选项-o allow_other。

本地我是jm服务器,我同时拥有jm和其他一些东西。 - JM at Work

你需要安装FUSE并将自己添加到该组中。
sudo apt-get install fuse-utils
sudo modprobe fuse
sudo gpasswd -a $USER fuse

重新启动您的机器,然后再次尝试挂载驱动器。
我建议您在/etc/fstab文件中添加一条规则,就像这样:
sshfs#user@host.com:/ /mnt/local-dir/ fuse comment=sshfs,noauto,users,exec,uid=1000,gid=1000,allow_other,reconnect,transform_symlinks,BatchMode=yes,IdentityFile=/home/user/.ssh/id_rsa-blahblah 0 0

然后你可以运行mount /mnt/local-dir来挂载远程文件系统。
如果你对公钥身份验证不熟悉,就把',IdentityFile=/home/user/.ssh/id_rsa-blahblah'删除掉,去了解一下公钥身份验证吧 :D

sshfs 依赖于 fuse-utils,没有它无法正常工作。用户已经安装了它,所以您的建议无法解决问题。 - enzotib
问题在于他没有正确配置FUSE。曾经需要安装FUSE。我已更新答案以提供更多帮助。我非常有信心,FUSE确实是他的问题所在。 - earthmeLon
根据我的经验,如果FUSE没有配置好的话,你根本无法挂载FUSE文件系统。OP成功挂载文件系统的事实表明这一步已经完成了。关于fstab和公钥认证的信息虽然有用,但对解决OP的问题并不相关。 - Ryan C. Thompson