sshfs 挂载无需压缩或加密

Bja*_*sen 32 networking ssh

我经常使用 sshfs 来通过网络挂载各种磁盘。但是,我确实有一台非常小的机器(带有原子处理器),我需要使用 sshfs 从中安装一个目录。

是否可以在使用 sshfs 挂载时禁用所有压缩,甚至可能禁用加密,以限制挂载目录的机器上的 CPU 使用率?

Dan*_* D. 41

尽管高性能 ssh添加了无密码,但 arcfour 密码几乎同样快,并且是标准配置。

用: -o Ciphers=arcfour

我一直在本地网络上使用它,我获得了大约 85% 的 100Mbps 以太网或大约 10.625MB/s

(作为回应 vava 的回答,即使 ssh 的加密关闭,sshfs 仍然是它的样子,因为身份验证协议仍然有效,如果没有它,您也可以使用 telnet。)


@osgx 的注意事项我最近发现了OpenSSL:密码选择,其中包括下图:

在此处输入图片说明

以下是该页面的结果部分。图表和结果是有问题的,因为它们没有说明基准测试是如何完成的以及在什么硬件上进行的,但我认为它们相距不远。

100,000 KB/s 是我可接受性能的阈值。这表示 1 个 CPU 内核(在我的例子中为 8 个)以 100% 的利用率运行以传输 780Mbit/s 的数据(这是千兆以太网链路的合理饱和点)。

RC4 是最快的密码,如果您使用的是不支持AESNI的处理器。

AES-128 是下一个最快的密码,如果您有 AESNI 支持,它比 RC4 快得多。如果你不这样做,它会慢 54%。AES-256 仍然较慢,除非另外明确配置,否则任何支持 AES-128 的浏览器也将支持 AES-256。

上面引用的内容清楚地表明,arcfour(以及带有AESNI 的AES )可以使现代机器上的千兆链路饱和。

如果您不需要加密,来​​自 hpn-ssh 的 none 密码甚至更快,但只有在您需要使链接达到千兆链接带宽数倍的饱和度或需要减少 CPU 使用率时才需要它。

  • 大多数现代 OpenSSH 安装中不推荐使用和缺少 `arcfour` 密码,您可以使用 `chacha20-poly1305@openssh.com` 代替。 (6认同)
  • 不是 '-o cipher=arcfour' 吗? (3认同)

小智 11

对于没有加密的 sftp,使用sshfs+socat

在服务器端运行

socat TCP4-LISTEN:7777 EXEC:/usr/lib/sftp-server
Run Code Online (Sandbox Code Playgroud)

在客户端

sshfs -o directport=7777 remote:/dir /local/dir
Run Code Online (Sandbox Code Playgroud)

来源:http : //pl.atyp.us/wordpress/index.php/2009/09/file-transfer-fun/

  • 默认情况下,socat TCP-LISTEN 侦听所有接口。要限制为一个特定的网络接口(例如,本地主机),请使用`,bind=127.0.0.1` 选项。要允许多个连接到服务器,请添加 `,fork` 选项。制作只读服务器?将 `-R` 添加到 EXEC 命令。最后,它看起来像这样:`socat TCP-LISTEN:7777,fork,bind=127.0.0.1 EXEC:'/usr/lib/sftp-server -R'`(在 Arch Linux 上,我不得不使用 ` /usr/lib/ssh/sftp-server` 代替)。 (4认同)
  • 虽然这在理论上可以解决问题,但最好总结链接内容,并提供链接作为参考 (2认同)