Pour échanger entre deux PC un(des) fichier(s) (éventuellement gros1)) ou un(des) répertoire(s), voici une solution efficace en peer2peer (ou pair à pair), CROC.
Il permet :
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 installation de croc (en)
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 <Fichier(s)OuRépertoire(s)Àenvoyer>
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-phrase2) 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 PAKE utilisée pour sécuriser le transfert, puis le transfert commence.
Il est possible d'utiliser son propre code-phrase 3) qu'on aura inventé ou généré avec un autre outil (minimum 6 caractères):
croc send --code mon-code-phrase mon_fichier
Pour accéder à l'aide: sur la liste des sous-commandes (send, relay) et options globales:
croc help
pour les options d'une <sous-commande>, send par exemple:
croc send --help
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 commande4)
croc relay