Existuje mnoho a mnoho způsobů, jak přenášet soubory mezi dvěma nebo více počítači. Můžete použít nástroje pro sdílení souborů na serveru, aplikace pro sdílení souborů peer-to-peer, USB klíče, externí pevné disky, SCP, NFS, FTP, HTTP, cloudové úložné platformy a mnoho dalších. Několik nástrojů pro sdílení souborů jsme již probrali. Dnes budeme diskutovat o dalším nástroji s názvem Croc . Croc je nástroj příkazového řádku, který vám umožňuje snadno, rychle a bezpečně přenášet soubory a složky mezi počítači.
Přenos dat pomocí Croc je rychlejší, protože funguje jako reléový server mezi systémy. Vytváří plně duplexní komunikační vrstvu v reálném čase mezi dvěma počítači, takže úlohy „nahrávání“ a „stahování“ probíhají mezi těmito počítači současně.
Croc poskytuje end-to-end šifrování pomocí Výměny klíčů ověřených heslem (PAKE) knihovna. Pro ty, kdo by se zajímali, knihovna PAKE umožňuje dvěma lidem vygenerovat silný tajný klíč pomocí slabého klíče, který oba předem znají. Tento tajný klíč se pak používá pro další šifrování. Protože klíč zná pouze odesílatel a příjemce, nikdo jiný se tajný klíč nemůže dozvědět, i když zná původní heslo.
Croc dokáže přenést více souborů najednou mezi počítači. Pokud je přenos dat z nějakého důvodu přerušen, může pokračovat v kopírování souboru od místa, kde byl naposledy ponechán.
Protože Croc používá relay, nepotřebujete centrální server ani přesměrování portů. Jedná se o multiplatformní aplikaci, takže můžete přenášet data mezi platformami Linux, Mac a Windows.
Stručně řečeno, Croc dělá následující:
- přenáší data mezi dvěma počítači pomocí relé,
- poskytuje end-to-end šifrování pomocí knihovny PAKE,
- přenese více souborů jedním tahem,
- Obnoví přerušené kopírování souboru,
- Žádné přesměrování portů centrálního serveru není potřeba ,
- ipv6-first se záložním protokolem ipv4,
- vyžaduje nulové závislosti
- pro více platforem,
- bezplatný a otevřený zdroj.
Croc je napsán v GO programovacím jazyce a je volně dostupný pod licencí MIT.
Nainstalujte Croc na Linux
Croc lze nainstalovat na jakoukoli distribuci Linuxu a Unixu, která podporuje Bash
pomocí následujícího příkazu:
$ curl https://getcroc.schollz.com | bash
Tento příkaz nainstaluje Croc do /usr/local/bin/
umístění.
Pokud nechcete něco vkládat přímo do SHELL
, předkompilované binární soubory si můžete stáhnout ze stránky vydání a nainstalujte je pomocí správce balíčků vaší distribuce.
Například jsem nainstaloval Croc deb soubor na svůj systém Ubuntu pomocí následujících příkazů:
$ sudo apt install gdebi
$ sudo gdebi croc_8.3.2_Linux-64bit.deb
Croc je dostupný v [Community], takže si ho můžete nainstalovat na Arch Linux a jeho varianty pomocí pacman
jako níže:
$ pacman -S croc
V systému NixOS spusťte:
$ nix-env -i croc
Croc je k dispozici také jako snap
.
$ snap install croc
Croc můžete také sestavit ze zdroje, pokud jste nainstalovali Go na svůj Linux systém.
$ GO111MODULE=on go get -v github.com/schollz/croc/v8
Přenos souborů a složek mezi počítači pomocí Croc
Ujistěte se, že jste nainstalovali Croc na všechny systémy.
Chcete-li přenést soubor/složku pomocí Croc, jednoduše spusťte:
$ croc send <file-or-folder-path>
Příklad:
$ croc send file.txt
Croc vygeneruje náhodnou kódovou frázi jako níže.
Sending 'file.txt' (116 B)
Code is: slow-tomato-almond
On the other computer run
croc slow-tomato-almond
Zde je kódová fráze slow-tomato-almond
. Kódová fráze se používá k vytvoření dohody o heslem ověřeném klíči (PAKE), která generuje tajný klíč, který odesílatel a příjemce mohou použít pro šifrování typu end-to-end.
Aby příjemce obdržel výše uvedený soubor na druhém počítači, měl by zadat poslední řádek ve výše uvedeném výstupu:
$ croc slow-tomato-almond
Stiskněte "y" a stiskněte Enter pro přijetí souboru.
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] ✔️
Ukázkový výstup:

Nastavit vlastní kódovou frázi
Jak jsem již zmínil, Croc vygeneruje náhodný kód pokaždé, když odešlete soubor nebo složku. Můžete také odesílat soubory/složky s vlastním kódem podle vašeho výběru pomocí --code
možnost.
$ croc send --code download-this file.txt
Zde "download-this"
je kódová fráze.
Ukázkový výstup:
Sending 'file.txt' (116 B)
Code is: download-this
On the other computer run
croc download-this
Příjemce může soubor obdržet pomocí následujícího příkazu:
$ croc download-this

Odeslat text
Stejně jako soubory a složky můžeme sdílet i text. To může být užitečné, když chcete sdílet zprávu nebo URL.
Chcete-li odeslat text pomocí Croc, spusťte:
$ croc send --text "Welcome to OSTechNix"
Ukázkový výstup:
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)
Příjemce obdrží text pomocí následujícího příkazu:
$ croc natural-roof-clock
Accept 'text' (20 B)? (y/n) y
Receiving (<-[fe80::d710:cf4:bb49:8b20%enp0s8]:9009)
Welcome to OSTechNix

Používejte potrubí
Výstup souboru můžete převést do croc, jak je uvedeno níže.
$ cat file.txt | croc send
Ukázkový výstup:
Sending 'stdin' (116 B)
Code is: dexter-cowboy-soprano
On the other computer run
croc dexter-cowboy-soprano
Croc automaticky použije data stdin a odešle a přiřadí název souboru jako "croc-stdin-728899651".
Na přijímající straně může uživatel přijmout soubor pomocí některého z následujících příkazů:
$ croc dexter-cowboy-soprano
Nebo použijte:
$ croc --yes dexter-cowboy-soprano > out
Zde --yes
nebude vyžadovat žádné potvrzení a automaticky souhlasí se všemi výzvami.
Nastavit výstupní složku
Ve výchozím nastavení Croc stáhne data v aktuálním pracovním adresáři. Pomocí --out
můžete použít jiné umístění pro stahování vlajka.
$ croc send file.txt
Ukázkový výstup:
Sending 'file.txt' (116 B)
Code is: program-public-mystery
On the other computer run
croc program-public-mystery
Na přijímací straně spusťte:
$ croc --out ~/Downloads
Po zobrazení výzvy zadejte kódovou frázi.
Jak získat pomoc
Pro nápovědu spusťte:
$ 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)