如何在openssh上禁用加密?


21

我在使用openssh(服务器)和腻子(客户端)组合使用远程webproxy时遇到性能问题。我想禁用加密并测试结果以查看它是否有所不同。我怎样才能做到这一点?我可以在中进行任何修改吗sshd_config?我对openssh很陌生。

任何其他想法将不胜感激。

我基本上已经将IE设置为使用127.0.0.1袜子作为代理。我将腻子连接到家中的voila服务器和voila-我可以通过它浏览Internet。但是,即使我知道我与家之间的连接速度很快(例如ftp的工作速度超过50Kbytes / sec,它的速度还是非常慢)。


2
很遗憾的ROT13补丁(miranda.org/~jkominek/rot13)上从来没有抓到......
Kenster

5
我高度怀疑SSH使用的加密是否会导致您连接速度慢,只要您的SSH服务器从1980
开始

Answers:


17

据我所知,如果不重新编译任何内容,就无法完成。但是,您可以切换到在现代硬件上非常快的ARC4或Blowfish。

您可以获得的最佳性能(就时钟周期而言)增加是通过添加

compression no

您可以通过更改

ciphers         aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
                aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
                aes256-cbc,arcfour

ciphers         arcfour,blowfish-cbc

如果您想挤出一些额外的性能以免出现不兼容的风险,则可以进行更改

macs  hmac-md5,hmac-sha1,umac-64@openssh.com,
      hmac-ripemd160,hmac-sha1-96,hmac-md5-96

macs  hmac-md5-96

如果您仍然认为这是过多的开销,则可以还原到v1或仅执行标准VPN。


3
如果您的OpenSSH安装(两端)都支持“无”密码,则也可以指定该密码,但这会破坏安全 Shell 的整个目的。
voretaq7'2

1
对于我们中间的C语言,您可以在cipher.c中添加 {{“ none”,SSH_CIPHER_NONE,8,0,0,EVP_enc_null} 到cipher.c中。
–ŹV

3
我还可以指出,您可以使用诸如socat(dest-unreach.org/socat)之类的东西来做同样的事情,并避免所有SSH协议开销。
ZV -

我认为umac-64是这些mac算法中最快的。
詹姆斯·恢复莫妮卡·波尔克(Monica Polk)2010年

在任何情况下,96位MD5都非常快。
–ŹV

7

除非客户端或服务器的电源严重不足,否则我强烈怀疑是加密导致了性能问题。我定期使用“ -D 8080” ssh袜子代理,除了速度非常缓慢外,什么都没注意到。

要检查的一件事是查看客户端和服务器之间的延迟时间。如果这是一个非常潜在的连接,那么使用HTTP时肯定会在隧道上看到较差的性能,而FTP却看不到性能问题。一旦进行FTP传输,延迟就不再重要了,但是对于HTTP,您要处理的网页可能需要进行50次或更多次单独的HTTP握手。高延迟连接确实会减慢此过程的速度,并使浏览变得难以忍受。

所以无论如何,Zephyr Pellerin提出的建议是正确的。如果您真的认为是加密确实造成了问题,请切换到其他密码。不过,我建议您先研究延迟,因为这似乎更有可能。


为此+1 ...问题极不可能是加密问题,而首先很可能是与您的主机的连接问题。
DaveG

16
我希望人们不要再说您不需要这样做,而是长时间讨论加密开销(如果有或没有的话)的好处和缺点,而只需回答这个问题即可。我没有理由在我至少需要身份验证的本地计算机上为本地任务添加冗余加密,但是从本地主机到本地主机的工作确实不需要加密。
Marius

5
并非如此,请尝试在gig-ethernet上使用scp复制大文件。Intel iCore 5负载为80%。
lzap 2012年

@Izap>它不仅具有加密功能,还具有更多功能。使用ftp(没有ssl)传输大文件也使我获得20%到40%的cpu负载。我指责廉价的演出以太网需要CPU给予过多的关注。
频谱

当您使用SSH进行ZFS发送/接收时,CPU成为瓶颈;)
Xdg

6

这个线程让我做自己的基准测试,我发现性能不仅会因密码/ MAC的不同而不同,而且还会影响您发送的数据,所涉及的CPU和网络的设置方式。

因此,IMO正确的做法是运行自己的测试并找到适合您情况的最佳设置。

如果有人感兴趣,这是我将Intel E5506驱动的服务器与Raspberry Pi进行比较的测试结果:

--
-- Intel Xeon E5506(4 x 2.13 GHz), 50MB Random binary Data over localhost
--

cipher                      mac                        speed
---------------------------------------------------------------
aes192-cbc                  hmac-sha1                    50MB/s
arcfour256                  hmac-sha2-512              49.9MB/s
arcfour                     hmac-ripemd160             49.8MB/s
aes256-cbc                  hmac-sha1-96               49.7MB/s
aes128-cbc                  hmac-sha1-96               49.7MB/s
aes192-cbc                  hmac-sha1                  48.9MB/s
arcfour                     hmac-ripemd160@openssh.com 48.8MB/s
aes256-cbc                  hmac-sha1-96               48.8MB/s
arcfour                     hmac-ripemd160@openssh.com 48.7MB/s
aes128-cbc                  hmac-sha1                  48.4MB/s


--
-- Raspberry PI B+, 10MB Random binary over localhost
--

cipher                      mac                        speed
---------------------------------------------------------------
arcfour256                  umac-64@openssh.com        2.75MB/s
arcfour128                  umac-64@openssh.com        2.74MB/s
arcfour                     umac-64@openssh.com        2.63MB/s
arcfour                     umac-64@openssh.com        2.54MB/s
arcfour                     hmac-md5-96                2.36MB/s
arcfour128                  hmac-md5                   2.34MB/s
arcfour256                  hmac-md5                   2.34MB/s
arcfour256                  umac-64@openssh.com        2.33MB/s
arcfour256                  hmac-md5-96                2.28MB/s
arcfour256                  hmac-md5-96                2.22MB/s

但是只有“前十名”,完整的结果可以在这里找到


没有“无”密码的结果对于该主题而言是不完整的。我有很多pogoplugv4(800Mhz臂版本=慢),他们经常将ssh与cpu相连。这就是为什么人们寻求无密码的原因。ssh / sshd cpu使用率达到100%表示它不是网络问题!我希望我记得回来并发布cipher = none结果……
user2420786 2015年

您是否具有用于生成此数据的脚本?我chacha20-poly1305@openssh.com对当今硬件上当前密码()的性能非常感兴趣。
雅库耶


3

在这篇文章的帮助下,我能够使用密码'none'编译sshd / ssh:https : //bugs.debian.org/cgi-bin/bugreport.cgi?bug=24559#58

这是一个非常古老的文章,但是您必须对源代码文件cipher.c进行3次轻微的修改。然后重新编译sshd / ssh代码。

@@ -175,7 +175,7 @@
    for ((p = strsep(&cp, CIPHER_SEP)); p && *p != '\0';
        (p = strsep(&cp, CIPHER_SEP))) {
        c = cipher_by_name(p);
-       if (c == NULL || c->number != SSH_CIPHER_SSH2) {
+       if (c == NULL || (c->number != SSH_CIPHER_SSH2 && c->number != SSH_CIPHER_NONE)) {
            debug("bad cipher %s [%s]", p, names);
            xfree(ciphers);
            return 0;
@@ -343,6 +343,7 @@
    int evplen;

    switch (c->number) {
+   case SSH_CIPHER_NONE:
    case SSH_CIPHER_SSH2:
    case SSH_CIPHER_DES:
    case SSH_CIPHER_BLOWFISH:
@@ -377,6 +378,7 @@
    int evplen = 0;

    switch (c->number) {
+   case SSH_CIPHER_NONE:
    case SSH_CIPHER_SSH2:
    case SSH_CIPHER_DES:
    case SSH_CIPHER_BLOWFISH:

另外,none还需要将密码添加到您的/etc/ssh/sshd_config

Ciphers aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr,none

以下链接将帮助您获取Debian和Ubuntu系统的ssh源:

感谢Dean Gaudet的出色表现


2

根据这篇非常好的博客文章

http://blog.famzah.net/2010/06/11/openssh-ciphers-performance-benchmark/

我建议设置以下密码。如果要在LAN上获得最佳性能,还请确保关闭压缩功能。请注意,这可能会带来安全风险,请仅在安全的局域网(例如家庭等)中使用。

# cat ~/.ssh/config
Host 192.168.1.*
    Compression no
    Ciphers arcfour256,arcfour128,arcfour,blowfish-cbc,aes128-cbc,aes192-cbc,cast128-cbc,aes256-cbc

修改第一行以列出您自己在LAN中的IP。您还可以提供主机名(以空格分隔)。这为您提供了LAN上最佳的scp性能。


1

如果您想尝试一个完全未加密和未压缩的隧道,则可以尝试使用类似rinetd数据转发的方式来代替SSH。这将消除SSH的额外功能,同时为TCP连接提供简单的二进制安全隧道。

当您说自己家里有快速连接时,您确定双向连接都很快吗?许多家庭连接是非常不对称的(例如,我的家庭ADSL下游约为11Mit,上游约为1.5Mbit,而许多情况更糟,我可以从朋友/家庭连接中引用一些信息:7M / 0.4M,19M / 1.3M,20M / 0.75M,...)。Remeber,如果您使用的家庭作为代理的数据必须通过你的链接两种方式去这样会移动充其量以最慢的下游速度和上游速度,您还需要考虑大量额外的延迟。另外,您的ISP可能会故意限制上游通信(通过整体通信或有选择地进行通信,以便不影响电子邮件和选定的受欢迎的网站之类的东西),以阻止人们通过家庭链接运行服务器/代理,尽管这种情况很少见。


ssh是大多数计算机上的标准配置。rinetd不在,但感谢您的建议。
Marius

那么您应该尝试netcat / nc
ThorstenS 2014年

0

我刚刚对此进行了广泛的测试,并且产生最高吞吐量的密码套件是带有umac64 MAC的aes-128-ctr。在4核3.4GHz机器上,我通过localhost看到了近900MBytes /秒的速度(消除网络瓶颈以进行基准测试)

如果确实需要那么多性能,则需要最新的SSH,可能还需要HPN-SSH补丁。


0

这是我用于与低端设备SSH连接的一个客户端SSH选项:

ssh -c none -m hmac-md5-96 -oKexAlgorithms=curve25519-sha256@libssh.org ....

最新的OpenSSH版本本身不支持密码。但是,从7.6开始,OpenSSH删除了SSHv1支持,并标记为“无”密码供内部使用。

#define CFLAG_NONE      (1<<3)
#define CFLAG_INTERNAL      CFLAG_NONE /* Don't use "none" for packets */

然后,您需要为服务器端和客户端进行修补和重新编译。

#define CFLAG_INTERNAL      0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.