ams*_*ams 6 nautilus sshfs sftp
我已将 Nautilus 设置为使用 SFTP 挂载远程文件系统。
到目前为止,效果很好,但 SFTP 似乎存在一些我认为无用的问题:
.gvfs,一切都很好)。当我通过 SSHFS 手动挂载相同的文件系统时,这一切都不会发生。是否可以将 Nautilus 配置为使用 SSHFS?也许是一个插件?它不会出现在可用选项的“连接到服务器”列表中。
编辑:有人指出 sshfs 使用 sftp 协议作为后端。虽然这可能是真的,但真正的问题是通过 Nautilus 访问文件不如通过 sshfs 挂载顺利,我想弄清楚如何让 Nautilus 以更好的方式做到这一点。
要挂载主机的远程文件夹,以便您可以将远程文件视为客户端上的本地文件,请使用sshfs而不是sftp.* 在主机上需要一个OpenSSH 服务器,然后才能进行以下操作。
从客户端运行[1]:
test -e ~/mountpoint || mkdir --mode 700 ~/mountpoint
sshfs fred@server.example.org:. ~/mountpoint -p <port-number>
Run Code Online (Sandbox Code Playgroud)
现在打开 Nautilus 中的本地文件夹~/mountpoint。恭喜,您可以将远程文件视为客户端上的本地文件!
fusermount -u ~/mountpoint
Run Code Online (Sandbox Code Playgroud)
*详细信息: SFTP 用于客户端和主机之间的文件传输,而 SSHFS 是文件系统客户端,使远程文件表现为本地文件。就好像您暂时将主机的远程文件夹与虚拟本地文件夹同步一样。
当您与这些 SSHFS 文件交互时,您的本地客户端将从主机到客户端通过 SSH 发送一份副本,因此事情的行为就像它们在您的客户端本地一样。但是,您所做的任何更改都会在远程主机上生效,并且即使在卸载后仍然保留。
另一种来回传输文件,甚至远程使用文件的方法是使用 sshfs。它是一个基于 SFTP 的文件系统客户端,并利用 sftp 子系统。它可以使远程服务器上的目录像本地文件系统上的目录一样可访问,任何程序都可以访问该目录,就像它是本地目录一样。用户必须具有挂载点的读写权限才能使用 sshfs。
所以最终两者的沟通方式是相同的。SSHFS 使用 SFTP。不同之处在于 sshfs 是一个文件系统驱动程序,允许安装允许通过 SFTP 访问的驱动器。然而,Nautilus 不会安装驱动器,它只会显示它们。您可以将文件系统添加到 /etc/fstab 以在启动时安装它,但我不建议这样做,因为 ssh 连接可能不可用。更简单的方法是设置一个可以作为启动应用程序运行的 bash 脚本。
#2 中描述的行为只是逻辑上的:由于您仅通过 SFTP 连接,因此拖入 Thunderbird 的文件并不存在于您的文件系统中,而是作为远程路径存在。
由于评论而编辑:
也许我解释得不够好。例如:如果您的远程资源位于服务器 fooserver 上,根目录为 foodir,文件位于 foosubdir/foofile 中,则资源路径为sftp://fooserver/foodir/foosubdir/foofile。当您使用 Nautilus SFTP 时,这仍然是您访问该文件的唯一路径,它是远程的。如果您使用 sshfs,则可以从您的文件系统中获取 foodir 的内容 - sshfs 是一个文件系统驱动程序。那么就好像该文件存储在您的硬盘上一样。资源的内容sftp://fooserver/foodir在逻辑上映射到您的安装目录中~/.gvfs。然后,thunderbird 可以从本地文件系统上下文中以~/.gvfs/foosubdir/foofile. Thunderbird 甚至没有注意到它是一个远程文件,集成到 klinux 内核中的 sshfs 文件系统驱动程序确实为您抽象了这一点。
| 归档时间: |
|
| 查看次数: |
13707 次 |
| 最近记录: |