我已将 Nautilus 设置为使用 SFTP 挂载远程文件系统。
到目前为止,效果很好,但 SFTP 似乎存在一些我认为无用的问题:
.gvfs,一切都很好)。当我通过 SSHFS 手动挂载相同的文件系统时,这一切都不会发生。是否可以将 Nautilus 配置为使用 SSHFS?也许是一个插件?它不会出现在可用选项的“连接到服务器”列表中。
编辑:有人指出 sshfs 使用 sftp 协议作为后端。虽然这可能是真的,但真正的问题是通过 Nautilus 访问文件不如通过 sshfs 挂载顺利,我想弄清楚如何让 Nautilus 以更好的方式做到这一点。
谁能快速解释一下这两种方法之间的技术差异?
sshfs在终端中使用这可能归结为 GVFS(使用 FUSE)与“直接”FUSE(如果这是一个合理的比较)。FUSE 我有点明白是什么,但 GVFS 有点神秘。
两者对我来说都有优点和缺点。前者允许轻松访问 GUI 并且您有机会创建书签,但会将您发送到远程文件系统的根文件夹(除非您另行指定)并安装在~/.gvfs/sftp on ... /其中,如果您想输入则有点麻烦通过本地终端。后者必须通过终端完成(据我所知),但您可以选择要“跳入”的文件夹,并且可以自己选择将其安装在本地文件系统上的位置。
我觉得很烦人的一件事是,如果我使用 GVFS,Vim/Gvim 会在写入时破坏文件的权限。例如,如果文件权限为 644,则在 Vim/Gvim 编辑它后将其设置为 600。我已经看到了 2008 年以来的各种错误报告,但我仍然遇到它。
我正在尝试在 ubuntu 上使用 sshfs。我在尝试连接的服务器上拥有 root 访问权限。但每次我尝试使用我的 ubuntu 笔记本电脑进行连接时,我收到的消息如下:
cp@cp-AOA150:/$ sudo sshfs root@myserver:/ /home/cp/Documents/myserverfolder/
read: Connection reset by peer
cp@cp-AOA150:/$
Run Code Online (Sandbox Code Playgroud)
我对 ubuntu / linux 不太熟悉,但问题可能是服务器上的密钥不是用户“cp”的吗?
如果是这种情况,我如何在 ubuntu 上设置 root 帐户?
任何建议,将不胜感激。
顺便提一句。我可以 ssh 进入盒子没有问题,但作为 root。所以换句话说,这有效:
ssh root@myservername
Run Code Online (Sandbox Code Playgroud)
我已将工作中的密钥文件复制到这台新笔记本电脑上。只是 sshfs 现在不开心。谢谢。
编辑 1
当我使用调试选项运行 sshfs 时:
cp@cp-AOA150:~$ sshfs -o sshfs_debug -p 22 root@10.14.5.182:/ /home/cp/Documents/myserverfolder/
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
SSHFS version 2.4
fusermount: user has no write access to mountpoint /home/cp/Documents/myserverfolder/
cp@cp-AOA150:~$
Run Code Online (Sandbox Code Playgroud)
我已经检查了文件夹 myserverfolder 的权限,它看起来像这样:(ls -la 命令的结果)
drwxr-xr-x 2 root root 4096 Mar 19 17:11 . …Run Code Online (Sandbox Code Playgroud) 我有ubuntu 12.04,内核版本是2.6.32
Linux user1 2.6.32-042stab083.2 #1 SMP Fri Nov 8 18:08:40 MSK 2013 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
当我运行命令 modprobe fusion 时它说
FATAL: Module fuse not found.
Run Code Online (Sandbox Code Playgroud)
我已经运行 apt-get remove libfuse2 并再次安装了fuse、libfuse 和fuse-utils
但我仍然收到错误模块保险丝未找到。
问候
我正在使用带有密码保护的密钥对的 sshfs 来使用 shell 脚本挂载远程文件夹。我也在该脚本中使用 ssh。
每次启动 shell 脚本时,我都会在命令行上收到每个 sshfs 调用的密码请求。我需要防止这种情况。
有没有办法将 sshfs 与 ssh-agent 和/或 kwallet 一起使用(就像我对 ssh 所做的那样)?或者我可以重用 sshfs 的现有 ssh 连接吗?
我用来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 …Run Code Online (Sandbox Code Playgroud) 在 Ubuntu Server 12.04 LTS 上,ecryptfs 设置在我的 /home/user/.private 目录在我登录时解密的位置。然后我可以访问我在 /home/user/private 中的文件。
但是,如果我没有登录服务器,而是使用 SSH 从 Ubuntu 桌面访问 Nautilus 中的服务器,则 Private 文件夹仍然是加密的,因此我无法查看文件。
有没有办法当通过 Nautilus 使用 SSHFS 并挂载 SSH 共享时,服务器将解密 .private 目录?
或者,只要打开服务器就可以一直解密吗?如果服务器关闭(即硬盘被盗),我只对加密感兴趣。
这只是我想与其他人分享的一个简短说明。这是关于我的办公机器遇到的问题。使用 ssh mount 时一直挂着。正如我所假设的,主要问题是 ssh 会话的终止,这导致 sshfs 没有响应。
此问题的解决方案是 /etc/ssh/ssh_config 文件中的 ServerAliveInterval 60 指令。
希望有人帮忙!
我正在尝试使用 fusion/sshfs 在我可以通过 SSH 访问的服务器上安装远程驱动器
我在 /mnt/review/server 创建了一个挂载点,并根据ArchWiki在我的 fstab 中创建了以下条目:
me@server:/ /mnt/review/dori fuse.sshfs defaults,user,noauto,idmap=user,allow_other 0 0
Run Code Online (Sandbox Code Playgroud)
我还根据Ubuntu 文档尝试了一个略有不同的条目:
sshfs#me@server:/ /mnt/review/dori fuse defaults,user,noauto,idmap=user,allow_other 0 0
Run Code Online (Sandbox Code Playgroud)
每次,我都只是得到/bin/sh: 1: sshfs: not found- 系统日志中没有任何内容。
当我运行 Kubuntu 14.04 时,这确实有效 - 我已经更改为在 Ubuntu 14.04 上运行的 Mint,现在我明白了。
似乎未安装 SSHFS - 但我在 Google 上找不到任何对此消息有帮助的信息。我还确保该fuse软件包已安装。我不知道如何解决这个问题。
我遇到了一个sshfs我以前从未见过的问题。
我通过执行以下操作将 serverB 挂载到 serverA(在 serverA 上以 root 身份登录时):
mkdir serverBLink
sshfs root@serverB:/ /home/myname/Documents/serverBLink
Run Code Online (Sandbox Code Playgroud)
一旦我这样做了,我就可以从命令行通过 serverBLink 文件夹查看 serverB 上的所有文件。照常营业。
但是,我无法在 Ubuntu 上使用文件管理器访问 serverBLink 文件夹。我不知道为什么。我认为这可能是权限问题,因为我在技术上以“dot”的身份登录计算机,但在命令行中,我已切换到 root... ??
作为测试,我尝试chmod 777在 serverBLink 文件夹上运行以授予每个人访问其中所有内容的权限,但它仍然不起作用。
使用文件管理器,当我尝试访问 serverBLink 文件夹时,我收到错误消息:
无法进入文件夹
有什么建议?
通过 sshfs 挂载树莓派设备:
sshfs osmc@rpi.: /home/user/pi
Run Code Online (Sandbox Code Playgroud)
安装信息:
user@azimuth:~$ mount | grep osmc
osmc@rpi.: on /home/user/pi type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
Run Code Online (Sandbox Code Playgroud)
为什么我无法卸载?
user@azimuth:~$ sudo umount /home/user/pi
[sudo] password for user:
umount: /home/user/pi: target is busy
(In some cases useful info about processes that
use the device is found by lsof(8) or fuser(1).)
Run Code Online (Sandbox Code Playgroud)
如何卸载 sshfs 共享?
更新:
user@azimuth:~$ sudo lsof | grep /home/user/pi
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.sshfs file system /home/user/nas …Run Code Online (Sandbox Code Playgroud)