{{tag> réseau partage}} ---- ====== Croc, partage de fichiers/répertoires en pair à pair ====== Pour échanger entre deux PC un(des) fichier(s) (éventuellement gros((il est toujours conseillé d'en limiter la taille… avec notre OS préféré, vous pouvez utiliser la commande split))) ou un(des) répertoire(s), voici une solution efficace en [[wpfr>Pair_à_pair|peer2peer]] (ou pair à pair), CROC. Il permet : *de chiffrer le transfert de bout en bout (en utilisant [[wp>Password-authenticated_key_agreement|PAKE]]) *des transferts entre PC multi-platformes (Linux, Windows, Mac) *de transférer plusieurs fichiers/répertoires *de reprendre le transfert après une interruption *d'être plus rapide que //wormhole//, [[:rsync]], [[:ssh#transfert_-_copie_de_fichiers|scp]] grâce à de la compression et du multiplexage (gain de 1,5× à 4×) * ===== Installation ===== Avec [[:snap]], il suffit de lancer: snap install croc Cette installation est évidemment nécessaire sur le PC émetteur et récepteur (+ sur un serveur si vous souhaitez avoir votre propre relais) Si snap ne passe pas ([[:focal]], [[:jammy]]) : snap install croc erreur : snap "croc" non trouvé Vous pouvez l'installer à partir du paquet : wget https://github.com/schollz/croc/releases/download/v9.6.0/croc_9.6.0_Linux-64bit.deb | sudo dpkg -i # ou utilisez le script défini par son développeur : curl https://getcroc.schollz.com | bash Pour les autres OS, reportez-vous à la page [[https://github.com/schollz/croc#install|installation de croc (en)]] ===== Utilisation et fonctionnement ===== Principe: cette outil léger (Croc fait moins de 1 Mo !) permet d'émettre un envoi de fichier(s) ou répertoire(s) avec une commande très simple: croc send exemple "réel": croc send /home/bcag2/Documents/doc-croc.pdf À ce moment, croc contacte le serveur //relay//, lui donne les infos identifiant l'émetteur (adresse IP essentiellement) et un code-phrase((comme un mot de passe ou [[wpfr>Phrase_secrète|phrase secrète]], mais organisé en mots plutôt qu'en caractères. Croc génère des codes-phrases de 3 mots séparés pas des tirets)) associé qu'il a généré, dans l'exemple ci-dessous //flute-vibrate-cyclone//\\ Ce code-phrase est retourné: On the other computer run croc flute-vibrate-cyclone pour vous permettre de le communiquer au destinataire oralement (avantage du code-phrase sur un mot de passe), par email, messagerie instantanée…\\ Le destinataire n'a plus qu'à le coller dans son terminal en argument de la commande //croc//, dans notre exemple: croc flute-vibrate-cyclone La communication s’établit alors **directement** entre les 2 PC, qui échangent la clé de chiffrement [[wp>Password-authenticated_key_agreement|PAKE]] utilisée pour sécuriser le transfert, puis le transfert commence. Étant en peer2peer, il est clair que le PC émetteur doit rester allumé tant que le fichier/répertoire n'est pas récupéré!\\ Un seul destinataire peut récupérer le fichier/répertoire, si vous devez l'envoyer à plusieurs personnes, il faut recommencer l'opération! Il est possible d'utiliser son propre code-phrase (([[https://github.com/schollz/croc#custom-code-phrase]])) qu'on aura inventé ou généré avec un autre outil (minimum 6 caractères): croc send --code mon-code-phrase mon_fichier le code-phrase ne sert pas au chiffrement du transfert mais simplement à l'identification de l'émetteur sur le serveur relais Pour accéder à l'aide: sur la liste des sous-commandes (//send//, //relay//) et options globales: croc help pour les options d'une , //send// par exemple: croc send --help ===== Le relais ===== La mise en relation entre le PC émetteur et le PC destinataire se fait via un serveur (le relais) qui, un peu comme un DNS, va mémoriser la correspondance //code - adresse IP// de l'émetteur qu'il va transmettre au destinataire.\\ Ce relais, par défaut, est public (hébergé à New-York, par défaut IP:142.93.177.120:9009)\\ Il est possible de se créer son propre relais avec la commande((https://github.com/schollz/croc#self-host-relay)) croc relay ===== Voir aussi ===== *(en) [[https://github.com/schollz/croc|Croc sur github]]