Il existe de nombreuses façons de transférer des fichiers entre deux ordinateurs ou plus. Vous pouvez utiliser des outils de partage de fichiers sur serveur, des applications de partage de fichiers peer-to-peer, des clés USB, des disques durs externes, SCP, NFS, FTP, HTTP, des plates-formes de stockage en nuage et bien d'autres. Nous avons déjà couvert quelques outils de partage de fichiers. Aujourd'hui, nous allons discuter d'un autre utilitaire nommé Croc . Croc est un utilitaire de ligne de commande qui vous permet de transférer facilement, rapidement et en toute sécurité des fichiers et des dossiers entre ordinateurs.
Le transfert de données à l'aide de Croc est plus rapide, car il agit comme un serveur relais entre les systèmes. Il crée une couche de communication en temps réel en duplex intégral entre les deux ordinateurs, de sorte que les tâches de "téléchargement" et de "téléchargement" se produisent simultanément entre ces ordinateurs.
Croc fournit un chiffrement de bout en bout à l'aide de Password Authenticated Key Exchange (PAKE) bibliothèque. Pour ceux qui se demandent, la bibliothèque PAKE permet à deux personnes de générer une clé secrète forte en utilisant une clé faible connue des deux au préalable. Cette clé secrète est ensuite utilisée pour un chiffrement supplémentaire. Étant donné que la clé n'est connue que de l'expéditeur et du destinataire, personne d'autre ne peut connaître la clé secrète même s'il connaît le mot de passe d'origine.
Croc peut être en mesure de transférer plusieurs fichiers à la fois entre les ordinateurs. Si le transfert de données est interrompu pour une raison quelconque, il peut reprendre la copie du fichier là où il a été laissé la dernière fois.
Étant donné que Croc utilise un relais, vous n'avez besoin ni d'un serveur central ni d'une redirection de port. Il s'agit d'une application multiplateforme, vous pouvez donc transférer les données entre les plateformes Linux, Mac et Windows.
En un mot, Croc fait ce qui suit :
- transfère des données entre deux ordinateurs à l'aide d'un relais,
- fournit un chiffrement de bout en bout en utilisant la bibliothèque PAKE,
- transfère plusieurs fichiers en une seule fois,
- Reprend la copie de fichier interrompue,
- Aucun transfert de port de serveur central nécessaire ,
- ipv6-first avec repli ipv4,
- ne nécessite aucune dépendance,
- multiplateforme,
- gratuit et open source.
Croc est écrit en GO langage de programmation et disponible gratuitement sous licence MIT.
Installer Croc sur Linux
Croc peut être installé sur toutes les distributions Linux et Unix prenant en charge Bash
en utilisant la commande suivante :
$ curl https://getcroc.schollz.com | bash
Cette commande installera Croc dans /usr/local/bin/
emplacement.
Si vous ne voulez pas injecter quelque chose directement dans votre SHELL
, vous pouvez télécharger les binaires pré-compilés à partir de la page des versions et installez-les à l'aide du gestionnaire de packages de votre distribution.
Par exemple, j'ai installé le fichier Croc deb sur mon système Ubuntu en utilisant les commandes suivantes :
$ sudo apt install gdebi
$ sudo gdebi croc_8.3.2_Linux-64bit.deb
Croc est disponible dans la [Communauté], vous pouvez donc l'installer sur Arch Linux et ses variantes en utilisant pacman
comme ci-dessous :
$ pacman -S croc
Sur NixOS, exécutez :
$ nix-env -i croc
Croc est également disponible en snap
.
$ snap install croc
Vous pouvez également compiler Croc à partir des sources si vous avez installé Go sur votre Linux système.
$ GO111MODULE=on go get -v github.com/schollz/croc/v8
Transférer des fichiers et des dossiers entre ordinateurs avec Croc
Assurez-vous d'avoir installé Croc sur tous les systèmes.
Pour transférer un fichier/dossier à l'aide de Croc, exécutez simplement :
$ croc send <file-or-folder-path>
Exemple :
$ croc send file.txt
Croc générera une phrase de code aléatoire comme ci-dessous.
Sending 'file.txt' (116 B)
Code is: slow-tomato-almond
On the other computer run
croc slow-tomato-almond
Ici, la phrase de code est slow-tomato-almond
. La phrase de code est utilisée pour établir un accord de clé authentifiée par mot de passe (PAKE) qui génère une clé secrète que l'expéditeur et le destinataire peuvent utiliser pour le chiffrement de bout en bout.
Pour recevoir le fichier ci-dessus sur l'autre ordinateur, le destinataire doit saisir la dernière ligne de la sortie ci-dessus :
$ croc slow-tomato-almond
Appuyez sur "y" et appuyez sur Entrée pour recevoir le fichier.
Accept 'file.txt' (116 B)? (y/n) y
Receiving (<-192.168.225.37:9009)
file.txt 100% |████████████████████| (116/116 B, 32.966 kB/s) [0s:0s] ✔️
Exemple de résultat :
Définir une phrase de code personnalisée
Comme je l'ai déjà mentionné, Croc générera un code aléatoire chaque fois que vous enverrez un fichier ou un dossier. Vous pouvez également envoyer des fichiers/dossiers avec un code personnalisé de votre choix en utilisant --code
option.
$ croc send --code download-this file.txt
Ici, "download-this"
est la phrase de code.
Exemple de résultat :
Sending 'file.txt' (116 B)
Code is: download-this
On the other computer run
croc download-this
Le destinataire peut recevoir le fichier à l'aide de la commande suivante :
$ croc download-this
Envoyer un SMS
Tout comme les fichiers et les dossiers, nous pouvons également partager le texte. Cela peut être utile lorsque vous souhaitez partager un message ou une URL.
Pour envoyer du texte à l'aide de Croc, exécutez :
$ croc send --text "Welcome to OSTechNix"
Exemple de résultat :
Sending 'text' (20 B)
Code is: natural-roof-clock
On the other computer run
croc natural-roof-clock
Sending (->[fe80::a00:27ff:fe10:7cc1%wlp9s0]:39916)
Le destinataire recevra le texte en utilisant la commande suivante :
$ croc natural-roof-clock
Accept 'text' (20 B)? (y/n) y
Receiving (<-[fe80::d710:cf4:bb49:8b20%enp0s8]:9009)
Welcome to OSTechNix
Utiliser des tuyaux
Vous pouvez rediriger la sortie du fichier vers croc comme ci-dessous.
$ cat file.txt | croc send
Exemple de résultat :
Sending 'stdin' (116 B)
Code is: dexter-cowboy-soprano
On the other computer run
croc dexter-cowboy-soprano
Croc utilisera automatiquement les données stdin et enverra et attribuera un nom de fichier comme "croc-stdin-728899651".
À la réception, l'utilisateur peut recevoir le fichier à l'aide de l'une des commandes suivantes :
$ croc dexter-cowboy-soprano
Ou utilisez :
$ croc --yes dexter-cowboy-soprano > out
Ici, --yes
ne demandera aucune confirmation et acceptera automatiquement toutes les invites.
Définir le dossier de sortie
Par défaut, Croc téléchargera les données dans le répertoire de travail actuel. Vous pouvez faire en sorte qu'il utilise un emplacement de téléchargement différent en utilisant --out
drapeau.
$ croc send file.txt
Exemple de résultat :
Sending 'file.txt' (116 B)
Code is: program-public-mystery
On the other computer run
croc program-public-mystery
À la réception, exécutez :
$ croc --out ~/Downloads
Entrez la phrase de code lorsque vous y êtes invité.
Obtenir de l'aide
Pour obtenir de l'aide, exécutez :
$ croc --help
NAME:
croc - easily and securely transfer stuff from one computer to another
USAGE:
Send a file:
croc send file.txt
Send a file with a custom code:
croc send --code secret-passphrase file.txt
VERSION:
v8.3.2-7d155ad
COMMANDS:
send send a file (see options with croc send -h)
relay start your own relay (optional)
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--remember save these settings to reuse next time (default: false)
--debug toggle debug mode (default: false)
--yes automatically agree to all prompts (default: false)
--stdout redirect file to stdout (default: false)
--no-compress disable compression (default: false)
--ask make sure sender and recipient are prompted (default: false)
--relay value address of the relay (default: "142.93.177.120:9009") [$CROC_RELAY]
--relay6 value ipv6 address of the relay (default: "[2604:a880:800:c1::14c:1]:9009") [$CROC_RELAY6]
--out value specify an output folder to receive the file (default: ".")
--pass value password for the relay (default: "pass123") [$CROC_PASS]
--help, -h show help (default: false)
--version, -v print the version (default: false)