Copier des files sans encryption (ssh) dans un réseau local

scp fonctionne bien dans tous les cas, mais le Raspberry Pi est faible pour copyr les files efficacement dans un environnement sécurisé (LAN). La capacité théorique de 6,75 Mo / s par lan sans fil de 54 Mbit est réduite à environ 1,1 Mo / s.

Existe-t-il un moyen de copyr des files à distance sans encryption?

Il devrait s'agir d'une command cli sans dépendance aux services supplémentaires (ftp, samba) ou au less avec un minimum de configuration. Je veux dire, un outil standard qui fonctionne assez bien avec des programmes / services standard (comme scp / ssh).

Vous cherchez peut-être rcp , il exécute l'exécution à distance via rsh, vous devrez donc vous fier à cela et garder à l'esprit que toutes les communications ne sont pas sécurisées.

Vous ne pouvez pas désactiver complètement le encryption sur ssh / scp, mais vous pouvez le forcer à utiliser un chiffrement plus faible qui consum beaucoup less de CPU. Assurez-vous que la compression n'est pas activée dans votre ssh_config ou sur la command line et ajoutez -c arcfour,blowfish-cbc à votre command line scp pour sélectionner des chiffrements plus faibles.

Je pense que NFS est tout à fait sous-estimé pour ce genre de tâche, où vous voulez la commodité, la rapidité et ne vous souciez pas de la security. NFS est vraiment simple à installer, surtout sur le client: consultez ce guide pour Ubuntu . Du sharepoint vue du client, il suffit de monter le directory du server et il ressemble à un lecteur local et vous pouvez utiliser cp ou rsync ou les commands que vous voulez.

J'ai écrit ce script rapide:

 #!/bin/bash ssh "$1" "nc -l 2020 > \"$2\" &" pv "$2" | nc "$1" 2020 

Il faut deux arguments, l'hôte pour l'envoyer et le file que vous envoyez. Cela ne fonctionne que pour un file. Il utilise ssh pour démarrer une écoute netcat à l'extrémité opposée, puis utilise netcat pour l'envoyer à ce port d'écoute. J'ai ajouté pv au début pour donner une belle barre de progression. Remplacez pv avec cat si vous n'avez pas ou voulez cela. Changez le port 2020 à ce que vous voulez. Cela nécessite que vous ayez un access ssh au système distant.

C'est complètement incertain, mais alors, c'est ce que vous vouliez.

Il y a des correctifs pour openssh pour HPC (High Performance Computing) qui améliorent le débit ssh en augmentant la taille des windows de transfert et en désactivant le encryption – vérifiez la HPN-SSH si vous ne recomposez pas la recompilation (et probablement les correctifs avant portage). Comme BowlOfRed remarqué dans le commentaire, vous devez utiliser les correctifs sur le client et le server.

Vous pouvez également utiliser rsync – sur une machine en tant que démon et en tant que client simple sur l'autre. Il est particulièrement utile pour synchroniser des volumes plus importants sur le réseau qui sont plus lents que la lecture (et la sum de contrôle) des files, car il est capable de transférer uniquement les parties de files qui diffèrent entre le client et le server. Voir les pages de manuel rsync(1) et rsyncd.conf(5) pour plus de détails.

Le script bash ci-dessus de Ben Collins est une bonne solution, mais il manque l'indicateur -p pour le port côté server. Exécuter tel quel vous donnerait simplement un file vide ou un server bloqué qui ne fait jamais rien.

Il est plus facile de voir ce que cela fait si vous regardez les commands.

 DestinationShell# nc -l -p 2020 > file.txt SourceShell# cat file.txt | nc dest.ip.address 2020 

nc ou netcat, est comme chat sauf que la sortie est répercutée dans une autre machine via une connection TCP. Vous ne faites que pousser la sortie de nc sur le server dans le file de destination. Vous pouvez configurer la Destination de la même manière et faire echo foo | nc dest.ip.address 2020 echo foo | nc dest.ip.address 2020 et faire toutes sortes d'autres choses avec nc.