Làm thế nào tôi có thể vô hiệu hóa mã hóa trên openssh?


21

Tôi đang gặp vấn đề về hiệu suất khi sử dụng kết hợp openssh (máy chủ) và putty (máy khách) để sử dụng webproxy từ xa. Tôi muốn tắt mã hóa và kiểm tra kết quả để xem nó có tạo ra sự khác biệt không. Làm thế nào tôi có thể làm điều đó? Có bất cứ điều gì tôi có thể sửa đổi trong sshd_config. Tôi rất mới với openssh.

Bất kỳ ý tưởng nào khác sẽ được đánh giá cao.

Về cơ bản, tôi đã thiết lập IE của mình để sử dụng vớ 127.0.0.1 làm proxy. Tôi kết nối putty của mình với máy chủ openssh của tôi ở nhà và voila - Tôi có thể duyệt internet thông qua đó. Tuy nhiên, nó cực kỳ chậm mặc dù tôi biết rằng tôi có kết nối nhanh đến nhà của mình (ví dụ: ftp hoạt động ở mức trên 50Kbyte / giây.


2
Thật đáng tiếc cho bản vá rot13 ( miranda.org/~jkominek/rot13 ) không bao giờ bị bắt trên ...
Kenster

5
Tôi rất nghi ngờ rằng mã hóa được sử dụng bởi SSH là nguyên nhân dẫn đến kết nối chậm của bạn miễn là máy chủ SSH của bạn không chạy trên đồng hồ đeo tay kỹ thuật số từ năm 1980.
joschi

Câu trả lời:


17

Nếu không biên dịch lại bất cứ điều gì, nó không thể được thực hiện theo như tôi biết. Tuy nhiên, bạn có thể chuyển sang ARC4 hoặc Blowfish nhanh chóng trên phần cứng hiện đại.

Hiệu suất TỐT NHẤT (theo chu kỳ đồng hồ có liên quan) tăng bạn có thể nhận được bằng cách thêm

compression no

Bạn có thể làm điều này bằng cách thay đổi

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

đến

ciphers         arcfour,blowfish-cbc

Nếu bạn muốn giảm bớt một số hiệu suất bổ sung có nguy cơ không tương thích, bạn có thể thay đổi

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

đến

macs  hmac-md5-96

Nếu bạn vẫn nghĩ rằng điều này là quá nhiều chi phí, bạn có thể quay lại v1 hoặc chỉ cần thực hiện VPN tiêu chuẩn.


3
Nếu cài đặt OpenSSH của bạn (ở cả hai đầu) được tuân thủ với sự hỗ trợ cho cypher "không", bạn cũng có thể chỉ định điều đó, nhưng điều đó đánh bại toàn bộ mục đích của vỏ an toàn .
voretaq7

1
Đối với C-nghiêng trong số chúng tôi, bạn có thể thêm {"none", SSH_CIPHER_NONE, 8, 0, 0, EVP_enc_null} vào crypt.c trong mảng mật mã.
ŹV -

3
Tôi cũng có thể chỉ ra rằng, Bạn có thể sử dụng một cái gì đó như socat ( Dest-unreach.org/socat ) để làm điều tương tự VÀ tránh tất cả chi phí giao thức SSH.
ŹV -

Tôi nghĩ umac-64 là thuật toán mac nhanh nhất.
James phục hồi Monica Polk

MD5 96 bit cực kỳ nhanh chóng trong mọi trường hợp.
ŹV -

7

Trừ khi máy khách hoặc máy chủ bị thiếu sức mạnh nghiêm trọng, tôi rất nghi ngờ rằng đó là mã hóa gây ra vấn đề về hiệu suất của bạn. Tôi sử dụng proxy ssh vớ "-D 8080" thường xuyên và chưa bao giờ nhận thấy bất cứ điều gì ngoại trừ một sự chậm chạp rất nhẹ.

Một điều cần kiểm tra là xem độ trễ giữa máy khách của bạn và máy chủ. Nếu đó là một kết nối rất tiềm ẩn, bạn chắc chắn sẽ thấy hiệu suất kém qua đường hầm khi sử dụng HTTP, trong khi không thấy vấn đề về hiệu suất với FTP. Khi quá trình chuyển FTP đang diễn ra, độ trễ không thực sự quan trọng, nhưng với HTTP, bạn đang xử lý các trang web có thể có 50 cái bắt tay HTTP riêng lẻ cần phải xảy ra. Các kết nối có độ trễ cao sẽ thực sự làm chậm quá trình này và sẽ khiến việc duyệt web không thể chịu đựng được.

Vì vậy, dù sao, các khuyến nghị mà Zephyr Pellerin đưa ra là âm thanh. Nếu bạn thực sự nghĩ rằng đó là mã hóa gây ra sự cố cho họ bằng mọi cách, hãy chuyển sang một mật mã khác. Tuy nhiên, tôi khuyên bạn nên xem xét độ trễ trước, vì dường như đó là một ứng cử viên có nhiều khả năng hơn.


+1 cho điều này ... các vấn đề rất khó có thể là mã hóa và nhiều khả năng sẽ là kết nối đến máy chủ của bạn ở nhà ngay từ đầu.
DaveG

16
Tôi ước mọi người sẽ ngừng nói rằng bạn không cần phải làm điều này và tham gia vào một cuộc thảo luận dài về lợi ích và nhược điểm của chi phí mã hóa (nếu hoặc nếu không), và chỉ cần thử và trả lời câu hỏi. Tôi không thấy lý do để thêm mã hóa dự phòng cho tác vụ cục bộ của mình trên máy cục bộ mà tôi cần ít nhất là xác thực, nhưng làm việc từ localhost sang localhost thực sự không cần mã hóa.
Marius

5
Không đúng, hãy thử sao chép một tệp lớn bằng scp trên gignet ethernet. Tải Intel iCore 5 là 80%.
lzap

@Izap> Có nhiều thứ hơn là chỉ mã hóa. Truyền một tệp lớn bằng cách sử dụng ftp(không có ssl) cũng giúp tôi tải được cpu từ 20 đến 40%. Tôi đổ lỗi cho gig-ethernet giá rẻ đòi hỏi quá nhiều sự chú ý từ cpu.
quang phổ

Khi bạn sử dụng SSH để gửi / nhận ZFS, CPU bị nghẽn cổ chai;)
Xdg

6

Chuỗi này đã cho tôi thực hiện các điểm chuẩn của riêng mình và tôi phát hiện ra rằng Hiệu suất thay đổi không chỉ bởi các mật mã / MAC khác nhau mà nó còn tạo ra sự khác biệt về dữ liệu bạn đang gửi, CPU nào có liên quan và cách thiết lập mạng.

Vì vậy, IMO điều đúng đắn cần làm là chạy thử nghiệm của riêng bạn và tìm các cài đặt tốt nhất cho tình huống của bạn.

Nếu ai đó quan tâm, đây là kết quả thử nghiệm của tôi so sánh Máy chủ điều khiển Intel E5506 với 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

Nhưng trên 'top 10', kết quả hoàn chỉnh có thể được tìm thấy ở đây .


kết quả mà không có mật mã 'không' là không đầy đủ cho chủ đề này. Tôi có nhiều pogoplugv4 (phiên bản cánh tay 800Mhz = chậm) và họ thường gắn cpu với ssh. đây là lý do tại sao mọi người tìm kiếm mật mã không. Việc sử dụng cpu ssh / sshd ở mức 100% có nghĩa là nó không phải là vấn đề về mạng! tôi hy vọng tôi nhớ quay lại và đăng mật mã = ​​không có kết quả nào ...
user2420786

Bạn có tập lệnh bạn đang sử dụng để tạo dữ liệu này không? Tôi sẽ khá quan tâm đến hiệu suất của các mật mã hiện tại ( chacha20-poly1305@openssh.com) trên phần cứng ngày nay.
Jakuje

Tất cả nằm trong ý chính: gist.github.com/piccaso/b74209cc3396587892b4
Florian Fida

3

Tôi đã có thể biên dịch sshd / ssh với mật mã 'none' với sự trợ giúp của bài đăng này: https://bugs.debian.org/cgi-bin/ormsreport.cgi?orms=24559#58

Đây là một bài viết rất cũ, nhưng bạn phải thực hiện 3 sửa đổi nhỏ cho tệp mã nguồn crypt.c. Sau đó biên dịch lại mã 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:

Ngoài ra, nonemật mã sẽ cần phải được thêm vào/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

Các liên kết dưới đây sẽ giúp bạn có được nguồn ssh cho các hệ thống Debian và Ubuntu:

Tín dụng cho Dean Gaudet là tuyệt vời


2

Theo bài viết trên blog rất hay này

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

Tôi khuyên bạn nên thiết lập các mật mã sau. Cũng đảm bảo nén được tắt nếu bạn muốn hiệu suất tốt nhất trên mạng LAN. Xin lưu ý đây là rủi ro bảo mật có thể xảy ra, chỉ sử dụng trên mạng LAN an toàn (ví dụ: tại nhà, v.v.).

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

Sửa đổi dòng đầu tiên để liệt kê IP của riêng bạn trong mạng LAN của bạn. Bạn cũng có thể cung cấp tên máy chủ (cách nhau bởi khoảng trắng). Điều này cung cấp cho bạn hiệu suất scp tốt nhất trên mạng LAN.


1

NẾU bạn muốn thử một đường hầm hoàn toàn không được mã hóa và không nén, bạn có thể thử sử dụng một cái gì đó như rinetdđể chuyển tiếp dữ liệu thay vì SSH. Điều này sẽ khuyến khích các tính năng bổ sung của SSH trong khi vẫn cung cấp một đường hầm an toàn nhị phân đơn giản cho các kết nối TCP.

Khi bạn nói rằng bạn có kết nối nhanh ở nhà, bạn có chắc chắn rằng nó nhanh ở cả hai hướng không? Nhiều kết nối gia đình rất không đối xứng (ví dụ ADSL của nhà tôi là ~ 11Mit xuôi dòng và ~ 1,5Mbit ngược dòng và nhiều điều tệ hơn thế, một số tôi có thể trích dẫn từ các kết nối bạn bè / gia đình: 7 giây / 0,4M, 19M / 1,3M, 20M / 0,75M, ...). Xin lưu ý rằng nếu bạn đang sử dụng nhà làm proxy, dữ liệu phải đi qua liên kết của bạn theo cả hai cách để sẽ di chuyển tốt nhấtở tốc độ chậm nhất của tốc độ xuôi dòng và ngược dòng của bạn và bạn cũng có một phần của độ trễ tăng thêm. Ngoài ra, ISP của bạn có thể cố tình tăng cường truyền thông ngược dòng (có thể là chăn hoặc chọn lọc để những thứ như email và các trang web phổ biến được chọn không bị ảnh hưởng) như một cách để khuyến khích mọi người chạy máy chủ / proxy khỏi liên kết nhà của họ, mặc dù điều này tương đối hiếm.


ssh là tiêu chuẩn trên hầu hết các máy. rinetd không phải trên một số, nhưng cảm ơn cho lời đề nghị.
Marius

sau đó bạn nên thử netcat / nc
ThorstenS

0

Tôi vừa mới thực hiện thử nghiệm rộng rãi về điều này và bộ mật mã mang lại thông lượng cao nhất là aes-128-ctr với umac64 MAC. Trên máy 4 nhân 3,4 GHz, tôi thấy gần 900 MB / giây thông qua localhost (để loại bỏ tắc nghẽn mạng vì mục đích đo điểm chuẩn)

Nếu bạn thực sự cần nhiều hiệu năng đó, bạn muốn có bản vá SSH mới nhất và có thể là bản vá HPN-SSH .


0

Đây là một tùy chọn SSH phía máy khách tôi đã sử dụng để kết nối SSH với các thiết bị cấp thấp:

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

Không có mật mã nào được hỗ trợ nguyên bản trong các phiên bản OpenSSH gần đây. Tuy nhiên, kể từ 7.6, OpenSSH đã loại bỏ hỗ trợ SSHv1 và gắn nhãn mật mã "không" cho sử dụng nội bộ.

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

Sau đó, bạn cần vá và biên dịch lại cho cả phía máy chủ và máy khách.

#define CFLAG_INTERNAL      0
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.