montage sshfs sans compression ni chiffrement

28

Je suis un utilisateur très fréquent de sshfs pour monter divers disques sur le réseau. J'ai cependant une très petite machine (avec un processeur atomique) à partir de laquelle j'ai besoin de monter un répertoire en utilisant sshfs.

Est-il possible de désactiver toute compression, et peut-être même également le chiffrement lors du montage à l'aide de sshfs, afin de limiter l'utilisation du processeur sur la machine à partir de laquelle le répertoire est monté?

Bjarke Freund-Hansen
la source
1
Vous supprimez le chiffrement et la compression ... laissez-moi réfléchir. Pourquoi n'utilisez-vous pas FTP ou SMB?
lajuette
1
Aucun cryptage ne ressemble vraiment à aucun SSH. Avez-vous envisagé d'utiliser un autre protocole complètement?
WhyNotHugo
2
@lajuette: Comme Dan D. l'indique ci-dessous, l'authentification ssh sera toujours cryptée, donc pas de mots de passe ou de clés en texte clair. De plus, connaissez-vous un protocole aussi facilement accessible que ssh où je peux monter des dossiers distants aussi facilement que je peux avec sshfs?
Bjarke Freund-Hansen
@lajuette Je veux le même genre de chose et ma raison est que j'ai besoin de quelque chose que mes machines de jeu rétro Win98 et WinXP en quarantaine peuvent utiliser pour extraire des fichiers de mon PC de bureau Linux et, parmi les options disponibles, SSH via WinSCP Just Works ™ via mon pare-feu de quarantaine de liste blanche tandis que FTP et SMB ne fonctionneront pas, peu importe comment j'essaie d'ouvrir les bons ports. (Et WebDAV ne peut apparemment être servi que par Apache, ce qui est trop compliqué à chrooter.)
ssokolow
Oh, en plus, AES me donne un débit de 27Mbit sur l'Athlon64 3200+, maximisant le CPU, tandis que RC4 double cela, donc aucun cryptage ne devrait être encore plus proche de maximiser le NIC 100Mbit du côté WinXP. (Étant donné que les disques de rouille rotatifs actuellement installés aux deux extrémités des opérations de copie en question atteignent un maximum d'environ 200 Mbit lorsque SMB est utilisé avec des fichiers contigus pour supprimer le besoin de recherche.)
ssokolow

Réponses:

38

Bien que le ssh haute performance ajoute un chiffrement nul, le chiffrement arcfour est presque aussi rapide et est inclus en standard.

Utilisation: -o Ciphers=arcfour

Je l'utilise sur le réseau local et j'obtiens environ 85% d'Ethernet 100 Mbps ou environ 10,625 Mo / s

(En réponse à la réponse de vava, sshfs serait toujours ce qu'il est même lorsque le cryptage de ssh est désactivé car le protocole d'authentification serait toujours actif sans lequel vous pourriez tout aussi bien utiliser telnet.)


Remarque pour @osgx J'ai récemment trouvé OpenSSL: Cipher Selection qui inclut le graphique suivant:

entrez la description de l'image ici

Voici la section des résultats de cette page. Le graphique et les résultats sont discutables car ils n'indiquent pas comment le benchmark a été fait et sur quel matériel mais je pense qu'ils ne sont pas si loin.

100 000 Ko / s est mon seuil de performances acceptables. Cela représente 1 cœur de processeur (sur 8 dans mon cas) fonctionnant à 100% pour transférer 780 Mbit / s de données (ce qui est un point de saturation raisonnable pour une liaison Ethernet gigabit).

RC4 est le chiffrement le plus rapide, si vous utilisez un processeur qui ne prend pas en charge AESNI .

AES-128 est le deuxième chiffre le plus rapide, et beaucoup plus rapide que RC4 si vous avez un support AESNI. C'est environ 54% plus lent si vous ne le faites pas. AES-256 est encore plus lent et, sauf configuration explicite contraire, tout navigateur prenant en charge AES-128 prend également en charge AES-256.

Ce qui a été cité ci-dessus montre clairement qu'arcfour (et également AES avec AESNI ) peut saturer une liaison Gigabit sur une machine moderne.

Si vous n'avez pas besoin de chiffrement, le chiffrement nul de hpn-ssh est encore plus rapide, mais vous n'en aurez besoin que si vous devez saturer un lien avec plusieurs fois la bande passante d'un lien Gigabit ou si vous avez besoin d'une utilisation réduite du processeur.

Dan D.
la source
Merci pour la réponse très informative et cela accélère vraiment les sshfs :)
nXqd
3
N'est-ce pas '-o cipher = arcfour'?
asalamon74
1
Arcfour atteindra-t-il des vitesses de 1 Gbit?
osgx
1
@osgx Oui, je pense que oui. Voir la réponse mise à jour.
Dan D.
3
arcfourchiffrement déconseillé et manquant sur la plupart des installations OpenSSH modernes, vous pouvez utiliser à la [email protected]place.
Mesut Tasci
8

Pour sftp sans chiffrement, utilisez sshfs+socat

Côté serveur

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

Et côté client

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

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

endru
la source
2
Bien que cela puisse théoriquement résoudre le problème, il serait préférable de résumer le contenu du lien et de fournir le lien comme référence
Canadian Luke REINSTATE MONICA
3
Par défaut, socat TCP-LISTEN écoute sur toutes les interfaces. Pour limiter à une interface réseau spécifique (par exemple, localhost), utilisez l' ,bind=127.0.0.1option. Pour autoriser plusieurs connexions au serveur, ajoutez l' ,forkoption. Faire un serveur en lecture seule? Ajoutez -Rà la commande EXEC. Au final, cela ressemblera à ceci: socat TCP-LISTEN:7777,fork,bind=127.0.0.1 EXEC:'/usr/lib/sftp-server -R'(sur Arch Linux, je devais utiliser à la /usr/lib/ssh/sftp-serverplace).
Lekensteyn
Pour un peu plus de sécurité, vous pouvez également restreindre la plage IP avec, par exemple ,range=192.168.1.2/32, pour permettre à une seule machine en particulier de se connecter.
Robin Dinse
3

Il n'y a aucun moyen de désactiver le cryptage - c'est ssh après tout. Et il semble que la compression soit désactivée par défaut car vous devez la demander avec le -Ccommutateur.

Mais vous voudrez peut-être vérifier dans votre ~/.ssh/configfichier les paramètres concernant la compression. Si vous ajoutez les lignes suivantes en haut de ce fichier, la compression doit être désactivée:

Host *
    Compression no
innaM
la source
2

Vous pouvez monter avec -o compression=nopour désactiver la compression. Il n'est pas possible de désactiver le cryptage, ce ne serait plus sshfs :) Si c'est lent, je suggère d'utiliser une autre façon de monter un répertoire, comme via samba, nfs ou ftp.

vava
la source
NFS serait un bon choix
Jeremy L
La valeur par défaut semble être "compression = non" de toute façon.
WhyNotHugo
0

Je pense que la compression est quelque chose qui n'est vraiment plus rapide que si le temps de compression est compensé par le temps de transfert des données. Ainsi, la compression sur une connexion lente augmente la vitesse jusqu'à peut-être 6 fois plus vite que sans. La compression sur une connexion rapide n'est pas du tout utile, car elle diminue la vitesse en raison du délai de compression sur votre système ou sur le système hôte. Certains hôtes n'acceptent pas du tout la compression, car ils ne veulent pas dépenser la puissance du processeur sur les utilisateurs.

Je pense que ce commutateur -o Ciphers=arcfouraugmentera la vitesse de cryptage à presque aucun cryptage, et -o cache=yes -o kernel_cache -o large_reads -o compression=nopeut augmenter votre vitesse beaucoup car il optimise un peu les sshfs. La compression sur les connexions à faible vitesse accélérera considérablement votre transfert si la compression est possible; c'est surtout le cas. Par exemple, je l'utilise avec une connexion à 2 Mbit / s vers le bas et 0,3 Mbit / s vers le haut, et cela accélère le transfert d'environ 3 à 5 minutes au lieu de 25 à 30 minutes pour environ 30 Moctets.

Andreas Bartels
la source
D'une certaine manière, vous ne donnez pas de meilleures informations que la réponse acceptée
yass
La réponse acceptée ne mentionne même pas la compression. Cette réponse peut être légèrement hors sujet, mais a toujours de bons conseils.
Quelqu'un