sshfs si monta senza compressione o crittografia


28

Sono un utente molto frequente di sshfs per montare vari dischi in rete. Tuttavia ho una macchina molto piccola (con un processore atomico) da cui ho bisogno di montare una directory usando sshfs.

È possibile disabilitare tutta la compressione, e forse anche anche la crittografia durante il montaggio utilizzando sshfs, in modo da limitare l'utilizzo della cpu sulla macchina da cui è montata la directory?


1
Stai abbandonando la crittografia e la compressione ... fammi pensare. Perché non usi FTP o SMB?
Lajuette,

1
Nessuna crittografia suona davvero come nessun SSH. Hai mai considerato di utilizzare un altro protocollo?
WhyNotHugo

2
@lajuette: Come afferma Dan D. di seguito, l'autenticazione ssh sarà comunque crittografata, quindi nessuna password o chiave in testo normale. Inoltre, conosci qualche protocollo che è prontamente disponibile come ssh dove posso montare le cartelle remote il più facilmente possibile con sshfs?
Bjarke Freund-Hansen,

@lajuette Voglio lo stesso genere di cose e la mia ragione è che ho bisogno di qualcosa che le mie macchine da gioco retrò Win98 e WinXP in quarantena possano usare per estrarre i file dal mio PC desktop Linux e, tra le opzioni disponibili, SSH tramite WinSCP Just Works ™ attraverso la mia whitelist mette in quarantena il firewall mentre FTP e SMB non funzionano, non importa quanto io provi ad aprire le porte giuste. (E a quanto pare WebDAV può essere servito solo da Apache, che è troppo complicato per chroot.)
ssokolow,

Oh, inoltre, AES mi dà un throughput di 27Mbit su Athlon64 3200+, massimizzando la CPU, mentre RC4 lo raddoppia, quindi nessuna crittografia dovrebbe avvicinarsi ancora al massimo al NIC 100Mbit sul lato WinXP. (Dato che le unità di ruggine rotanti attualmente installate su entrambe le estremità delle operazioni di copia in questione si estendono a circa 200 Mbit quando SMB viene utilizzato con file contigui per rimuovere la necessità di cercare.)
ssokolow,

Risposte:


38

Sebbene il ssh ad alte prestazioni non aggiunga un numero nessuno, il codice arcfour è quasi altrettanto veloce ed è incluso di serie.

Uso: -o Ciphers=arcfour

Lo sto usando sulla rete locale e ottengo circa l'85% di Ethernet a 100 Mbps o circa 10.625 MB / s

(In risposta alla risposta di vava, sshfs sarebbe ancora quello che è anche quando la crittografia di ssh è disattivata poiché il protocollo di autenticazione sarebbe ancora attivo senza il quale potresti anche usare telnet.)


Nota per @osgx Di recente ho trovato OpenSSL: Selezione di cifratura che include il seguente grafico:

inserisci qui la descrizione dell'immagine

Quella che segue è la sezione dei risultati di quella pagina. Il grafico e i risultati sono discutibili in quanto non indicano come è stato fatto il benchmark e su quale hardware, ma penso che non siano così lontani.

100.000 Kbyte / s è la mia soglia per prestazioni accettabili. Ciò rappresenta 1 core della CPU (di 8 nel mio caso) in esecuzione al 100% di utilizzo per trasferire 780 Mbit / s di dati (che è un ragionevole punto di saturazione per un collegamento Gigabit Ethernet).

RC4 è il codice più veloce, se si utilizza un processore che non supporta AESNI .

AES-128 è la cifra successiva più veloce e molto più veloce di RC4 se si dispone del supporto AESNI. In caso contrario, è circa il 54% più lento. AES-256 è ancora più lento e, se non diversamente configurato esplicitamente, qualsiasi browser che supporti AES-128 supporterà anche AES-256.

Ciò che è stato citato sopra mostra chiaramente che arcfour (e anche AES con AESNI ) possono saturare un collegamento Gigabit su una macchina moderna.

Se non hai bisogno della crittografia, il codice nessuno di hpn-ssh è ancora più veloce ma ne avresti bisogno solo se hai bisogno di saturare un collegamento con una larghezza di banda diverse volte di un collegamento Gigabit o se hai bisogno di un utilizzo ridotto della CPU.


Grazie per la risposta molto istruttiva e questo velocizza davvero gli sshfs :)
nXqd

3
Non è '-o cipher = arcfour'?
asalamon74,

1
Arcfour raggiungerà velocità di 1 Gbit?
osgx,

1
@osgx Sì, la penso così. Vedi la risposta aggiornata.
Dan D.

3
arcfourcifratura deprecata e mancante sulla maggior parte delle moderne installazioni OpenSSH, puoi chacha20-poly1305@openssh.cominvece usarla .
Mesut Tasci,

8

Per sftp senza crittografia, utilizzare sshfs+socat

Sul lato server in esecuzione

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

E dal lato client

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

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


2
Sebbene ciò possa teoricamente risolvere il problema, sarebbe preferibile riassumere i contenuti del collegamento e fornire il collegamento come riferimento
Canadian Luke REINSTATE MONICA

3
Per impostazione predefinita, socat TCP-LISTEN è in ascolto su tutte le interfacce. Per limitare a una specifica interfaccia di rete (ad es. Localhost), utilizzare l' ,bind=127.0.0.1opzione. Per consentire più connessioni al server, aggiungere l' ,forkopzione. Stai creando un server di sola lettura? Aggiungi -Ral comando EXEC. Alla fine, sarà simile al seguente: socat TCP-LISTEN:7777,fork,bind=127.0.0.1 EXEC:'/usr/lib/sftp-server -R'(su Arch Linux, ho dovuto usare /usr/lib/ssh/sftp-serverinvece).
Lekensteyn,

Per un po 'più di sicurezza, puoi anche limitare l'intervallo IP con ad esempio ,range=192.168.1.2/32, per consentire a un solo computer specifico di connettersi.
Robin Dinse,

3

Non c'è modo di disabilitare la crittografia: dopo tutto questo è ssh. E sembra che la compressione sia disabilitata per impostazione predefinita in quanto è necessario richiederla con l' -Cinterruttore.

Ma potresti voler controllare il tuo ~/.ssh/configfile per le impostazioni riguardanti la compressione. Se aggiungi le seguenti righe all'inizio di quel file, la compressione dovrebbe essere disabilitata:

Host *
    Compression no

2

È possibile montare con -o compression=noper disattivare la compressione. Non è possibile disattivare la crittografia, dopo non sarebbe sshfs :) Se è lento suggerisco di usare un altro modo per montare una directory, come attraverso samba, nfs o ftp.


NFS sarebbe una buona scelta
Jeremy L

Il valore predefinito sembra comunque "compressione = no".
WhyNotHugo

0

Penso che la compressione sia qualcosa di veramente più veloce solo se il tempo di comprimere è compensato dal tempo di trasferire i dati. Quindi la compressione su una connessione lenta sta aumentando la velocità fino a forse 6 volte più velocemente che senza. La compressione su una connessione veloce non è affatto utile, in quanto diminuisce la velocità a causa del ritardo di compressione sul proprio sistema host. Alcuni host non accettano affatto la compressione, in quanto non vogliono spendere la potenza del processore per gli utenti.

Penso che questo interruttore -o Ciphers=arcfouraumenterà la velocità della crittografia quasi a nessuna crittografia e -o cache=yes -o kernel_cache -o large_reads -o compression=nopotrebbe aumentare molto la tua velocità poiché ottimizza un po 'sshfs. La compressione su connessioni a bassa velocità accelererà molto il trasferimento se è possibile la compressione; per lo più lo è. Ad esempio, lo uso con una connessione 2 Mbit / s down e 0,3 Mbit / s up e accelera il trasferimento di circa 3-5 minuti anziché 25-30 minuti per circa 30 MByte.


In un certo senso non stai fornendo informazioni migliori della risposta accettata
yass

La risposta accettata non menziona nemmeno la compressione. Questa risposta potrebbe essere leggermente fuori tema, ma ha comunque buoni consigli.
Qualcuno il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.