sshfs wird ohne Komprimierung oder Verschlüsselung bereitgestellt

28

Ich bin ein sehr häufiger Benutzer von sshfs zum Mounten verschiedener Festplatten über das Netzwerk. Ich habe jedoch eine sehr kleine Maschine (mit einem Atom-Prozessor), von der ich ein Verzeichnis mit sshfs mounten muss.

Ist es möglich, die gesamte Komprimierung und möglicherweise auch die Verschlüsselung beim Mounten mit sshfs zu deaktivieren, um die CPU-Auslastung auf dem Computer zu begrenzen, von dem aus das Verzeichnis gemountet wird?

Bjarke Freund-Hansen
quelle
1
Sie lassen Verschlüsselung und Komprimierung fallen ... lassen Sie mich darüber nachdenken. Warum benutzt du nicht FTP oder SMB?
Lajuette
1
Keine Verschlüsselung hört sich wirklich nach keiner SSH an. Haben Sie überlegt, ein anderes Protokoll zu verwenden?
WhyNotHugo
2
@lajuette: Wie Dan D. weiter unten ausführt, wird die SSH-Authentifizierung weiterhin verschlüsselt, sodass keine Passwörter oder Schlüssel im Klartext verwendet werden. Kennen Sie auch ein Protokoll, das so schnell verfügbar ist wie ssh, mit dem ich Remote-Ordner so einfach wie mit sshfs bereitstellen kann?
Bjarke Freund-Hansen
@lajuette Ich möchte das Gleiche, und mein Grund ist, dass ich etwas brauche, mit dem meine isolierten Win98- und WinXP-Retro-Gaming-Computer Dateien von meinem Linux-Desktop-PC und von den verfügbaren Optionen SSH über WinSCP Just Works ™ herunterladen können Meine Whitelist-Quarantäne-Firewall, während FTP und SMB nicht funktionieren, egal wie sehr ich mich bemühe, die richtigen Ports zu öffnen. (Und WebDAV kann anscheinend nur von Apache
bereitgestellt werden
Mit AES kann ich auf dem Athlon64 3200+ einen 27-Mbit-Durchsatz erzielen, bei maximaler CPU-Auslastung, während RC4 diesen Wert verdoppelt. Daher sollte keine Verschlüsselung die 100-Mbit-NIC auf der WinXP-Seite noch besser ausnutzen. (Angesichts der Tatsache, dass die derzeit an beiden Enden der fraglichen Kopiervorgänge installierten rotierenden Rostlaufwerke maximal 200 MBit erreichen, wenn SMB mit zusammenhängenden Dateien verwendet wird, um die Notwendigkeit des Suchens zu beseitigen.)
ssokolow

Antworten:

38

Obwohl die Hochleistungs- SSH eine Nicht-Verschlüsselung hinzufügt, ist die ArcFour-Verschlüsselung fast genauso schnell und standardmäßig enthalten.

Verwenden: -o Ciphers=arcfour

Ich verwende dies über das lokale Netzwerk und erhalte ungefähr 85% von 100 Mbit / s Ethernet oder ungefähr 10,625 Mbit / s

(In der Antwort von vava wäre sshfs immer noch das, was es ist, auch wenn die Verschlüsselung von ssh ausgeschaltet ist, da das Authentifizierungsprotokoll immer noch aktiv wäre, ohne das Sie genauso gut Telnet verwenden könnten.)


Hinweis für @osgx Ich habe kürzlich OpenSSL: Cipher Selection gefunden, das die folgende Grafik enthält:

Bildbeschreibung hier eingeben

Das Folgende ist der Ergebnisabschnitt von dieser Seite. Die Grafik und die Ergebnisse sind fraglich, da sie nicht angeben, wie der Benchmark durchgeführt wurde und auf welcher Hardware, aber ich denke, dass sie nicht so weit entfernt sind.

100.000 Kbyte / s sind meine Schwelle für eine akzeptable Leistung. Dies entspricht einem CPU-Kern (in meinem Fall acht), der zu 100% ausgelastet ist, um 780 Mbit / s an Daten zu übertragen (ein angemessener Sättigungspunkt für eine Gigabit-Ethernet-Verbindung).

RC4 ist die schnellste Verschlüsselung, wenn Sie einen Prozessor verwenden, der AESNI nicht unterstützt .

AES-128 ist die zweitschnellste Verschlüsselung und viel schneller als RC4, wenn Sie AESNI-Unterstützung haben. Es ist ungefähr 54% langsamer, wenn Sie dies nicht tun. AES-256 ist noch langsamer, und sofern nicht ausdrücklich anders konfiguriert, unterstützt jeder Browser, der AES-128 unterstützt, auch AES-256.

Was oben zitiert wurde, zeigt deutlich, dass arcfour (und auch AES mit AESNI ) eine Gigabit-Verbindung auf einer modernen Maschine auslasten kann.

Wenn Sie keine Verschlüsselung benötigen, ist die Nicht-Verschlüsselung von hpn-ssh noch schneller, aber Sie benötigen sie nur, wenn Sie eine Verbindung mit der mehrfachen Bandbreite einer Gigabit-Verbindung auslasten müssen oder wenn Sie eine geringere CPU-Auslastung benötigen.

Dan D.
quelle
Vielen Dank für die sehr informative Antwort und das beschleunigt die sshfs wirklich :)
nXqd
3
Ist es nicht '-o cipher = arcfour'?
Asalamon74
1
Erreicht arcfour eine Geschwindigkeit von 1 Gbit?
osgx
1
@osgx Ja, das würde ich mir vorstellen. Siehe aktualisierte Antwort.
Dan D.
3
arcfourVerschlüsselung ist veraltet und fehlt in den meisten modernen OpenSSH-Installationen. Sie können [email protected]stattdessen verwenden.
Mesut Tasci
8

Verwenden Sie für SFTP ohne Verschlüsselung sshfs+socat

Auf der Serverseite ausführen

socat TCP4-LISTEN:7777 EXEC:/usr/lib/sftp-server

Und auf der Kundenseite

sshfs -o directport=7777 remote:/dir /local/dir

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

endru
quelle
2
Während dies theoretisch das Problem lösen könnte, wäre es vorzuziehen, den Inhalt des Links zusammenzufassen und den Link als Referenz bereitzustellen
Kanadier Luke REINSTATE MONICA vom
3
Standardmäßig überwacht socat TCP-LISTEN alle Schnittstellen. Verwenden Sie die ,bind=127.0.0.1Option , um die Beschränkung auf eine bestimmte Netzwerkschnittstelle (z. B. localhost) vorzunehmen. Fügen Sie die ,forkOption hinzu, um mehrere Verbindungen zum Server zuzulassen . Einen Nur-Lese-Server erstellen? In -Rzum EXEC - Befehl. Am Ende wird es so aussehen: socat TCP-LISTEN:7777,fork,bind=127.0.0.1 EXEC:'/usr/lib/sftp-server -R'(auf Arch Linux musste ich /usr/lib/ssh/sftp-serverstattdessen verwenden).
Lekensteyn
Für ein bisschen mehr Sicherheit können Sie auch den IP-Bereich einschränken, indem Sie beispielsweise ,range=192.168.1.2/32zulassen, dass nur ein bestimmter Computer eine Verbindung herstellt.
Robin Dinse
3

Es gibt keine Möglichkeit, die Verschlüsselung zu deaktivieren - das ist schließlich ssh. Und es sieht so aus, als ob die Komprimierung standardmäßig deaktiviert ist, da Sie sie mit dem -CSwitch anfordern müssen .

Möglicherweise möchten Sie jedoch in Ihrer ~/.ssh/configDatei die Einstellungen für die Komprimierung überprüfen . Wenn Sie die folgenden Zeilen oben in diese Datei einfügen, sollte die Komprimierung deaktiviert sein:

Host *
    Compression no
innaM
quelle
2

Sie können mit einhängen -o compression=no, um die Komprimierung auszuschalten. Es ist nicht möglich, die Verschlüsselung auszuschalten, danach wäre es nicht sshfs :) Wenn es langsam ist, schlage ich vor, ein Verzeichnis auf andere Weise zu mounten, z. B. über Samba, NFS oder FTP.

vava
quelle
NFS wäre eine gute Wahl
Jeremy L
Die Standardeinstellung scheint ohnehin "compression = no" zu sein.
WhyNotHugo
0

Ich denke, Komprimierung ist etwas, das wirklich nur dann schneller ist, wenn die Zeit für die Komprimierung durch die Zeit für die Datenübertragung kompensiert wird. Die Komprimierung bei einer langsamen Verbindung erhöht die Geschwindigkeit also auf das Sechsfache. Die Komprimierung bei einer schnellen Verbindung ist überhaupt nicht sinnvoll, da sie aufgrund der Komprimierungsverzögerung auf Ihrem oder dem Host-System die Geschwindigkeit verringert. Einige Hosts akzeptieren keine Komprimierung, da sie keine Prozessorleistung für Benutzer ausgeben möchten.

Ich denke, dieser Schalter -o Ciphers=arcfourerhöht die Geschwindigkeit der Verschlüsselung auf nahezu keine Verschlüsselung und -o cache=yes -o kernel_cache -o large_reads -o compression=nokann Ihre Geschwindigkeit erheblich steigern, da er sshfs ein wenig optimiert. Komprimierung bei langsamen Verbindungen beschleunigt die Übertragung erheblich, wenn eine Komprimierung möglich ist. meistens ist es. Zum Beispiel verwende ich es mit einer 2 Mbit / s Down- und 0,3 Mbit / s Up-Verbindung und beschleunige die Übertragung um ca. 3-5 Minuten anstatt um 25-30 Minuten für ca. 30 MByte.

Andreas Bartels
quelle
In
gewisser
Die akzeptierte Antwort erwähnt nicht einmal die Komprimierung. Diese Antwort ist vielleicht ein wenig vom Thema abweichend, hat aber immer noch gute Ratschläge.
Jemand