Esistono moltissimi modi per trasferire file tra due o più computer. È possibile utilizzare strumenti di condivisione file basati su server, app di condivisione file peer-to-peer, chiavette USB, unità disco rigido esterne, SCP, NFS, FTP, HTTP, piattaforme di archiviazione cloud e molti altri. Abbiamo già trattato alcuni strumenti di condivisione di file. Oggi parleremo di un'altra utility chiamata Croc . Croc è un'utilità della riga di comando che consente di trasferire facilmente, rapidamente e in modo sicuro file e cartelle tra computer.
Il trasferimento dei dati tramite Croc è più veloce, perché funge da server di inoltro tra i sistemi. Crea uno strato di comunicazione in tempo reale full-duplex tra i due computer, in modo che le attività di "caricamento" e "download" avvengano contemporaneamente tra quei computer.
Croc fornisce la crittografia end-to-end utilizzando Password Authenticated Key Exchange libreria (PAKE). Per coloro che si chiedono, la libreria PAKE consente a due persone di generare una chiave segreta forte utilizzando una chiave debole nota a entrambi in anticipo. Questa chiave segreta viene quindi utilizzata per un'ulteriore crittografia. Poiché la chiave è nota solo al mittente e al destinatario, nessun altro può conoscere la chiave segreta anche se conosce la password originale.
Croc può essere in grado di trasferire più file contemporaneamente tra computer. Se il trasferimento dei dati viene interrotto per qualsiasi motivo, può riprendere la copia del file da dove era stato lasciato l'ultima volta.
Poiché Croc utilizza il relay, non hai bisogno né di un server centrale né di un port forwarding. È un'applicazione multipiattaforma, quindi puoi trasferire i dati tra piattaforme Linux, Mac e Windows.
In poche parole, Croc fa quanto segue:
- trasferisce i dati tra due computer utilizzando un relè,
- fornisce crittografia end-to-end utilizzando la libreria PAKE,
- trasferisce più file in una volta,
- Riprende la copia del file interrotta,
- Nessun port forwarding del server centrale necessario ,
- ipv6-first con ipv4 fallback,
- richiede zero dipendenze,
- multipiattaforma,
- gratuito e open source.
Croc è scritto in GO linguaggio di programmazione e disponibile gratuitamente con licenza MIT.
Installa Croc su Linux
Croc può essere installato su qualsiasi distribuzione Linux e Unix che supporti Bash
utilizzando il seguente comando:
$ curl https://getcroc.schollz.com | bash
Questo comando installerà Croc in /usr/local/bin/
Posizione.
Se non vuoi iniettare qualcosa direttamente nel tuo SHELL
, puoi scaricare i binari precompilati dalla pagina dei rilasci e installali utilizzando il gestore di pacchetti della tua distribuzione.
Ad esempio, ho installato il file Croc deb sul mio sistema Ubuntu utilizzando i seguenti comandi:
$ sudo apt install gdebi
$ sudo gdebi croc_8.3.2_Linux-64bit.deb
Croc è disponibile nella [Community], quindi puoi installarlo su Arch Linux e le sue varianti usando pacman
come di seguito:
$ pacman -S croc
Su NixOS, esegui:
$ nix-env -i croc
Croc è disponibile anche come snap
.
$ snap install croc
Puoi anche creare Croc dal sorgente se hai installato Go sul tuo Linux sistema.
$ GO111MODULE=on go get -v github.com/schollz/croc/v8
Trasferisci file e cartelle tra computer con Croc
Assicurati di aver installato Croc su tutti i sistemi.
Per trasferire un file/cartella utilizzando Croc, esegui semplicemente:
$ croc send <file-or-folder-path>
Esempio:
$ croc send file.txt
Croc genererà una frase in codice casuale come di seguito.
Sending 'file.txt' (116 B)
Code is: slow-tomato-almond
On the other computer run
croc slow-tomato-almond
Qui, la frase in codice è slow-tomato-almond
. La frase in codice viene utilizzata per stabilire un accordo di chiave autenticata con password (PAKE) che genera una chiave segreta per il mittente e il destinatario da utilizzare per la crittografia end-to-end.
Per ricevere il file sopra sull'altro computer, il destinatario deve inserire l'ultima riga nell'output sopra:
$ croc slow-tomato-almond
Premi "y" e premi invio per ricevere il file.
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] ✔️
Risultato di esempio:
Imposta una frase in codice personalizzata
Come ho già detto, Croc genererà un codice casuale ogni volta che invii un file o una cartella. Puoi anche inviare file/cartelle con un codice personalizzato a tua scelta utilizzando --code
opzione.
$ croc send --code download-this file.txt
Qui, "download-this"
è la frase in codice.
Risultato di esempio:
Sending 'file.txt' (116 B)
Code is: download-this
On the other computer run
croc download-this
Il destinatario può ricevere il file utilizzando il seguente comando:
$ croc download-this
Invia SMS
Proprio come file e cartelle, possiamo condividere anche il testo. Questo può essere utile quando vuoi condividere un messaggio o un URL.
Per inviare testo utilizzando Croc, esegui:
$ croc send --text "Welcome to OSTechNix"
Risultato di esempio:
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)
Il destinatario riceverà il testo utilizzando il seguente comando:
$ croc natural-roof-clock
Accept 'text' (20 B)? (y/n) y
Receiving (<-[fe80::d710:cf4:bb49:8b20%enp0s8]:9009)
Welcome to OSTechNix
Usa i tubi
Puoi reindirizzare l'output del file a croc come di seguito.
$ cat file.txt | croc send
Risultato di esempio:
Sending 'stdin' (116 B)
Code is: dexter-cowboy-soprano
On the other computer run
croc dexter-cowboy-soprano
Croc utilizzerà automaticamente i dati stdin e invierà e assegnerà un nome file come "croc-stdin-728899651".
Sul lato ricevente, l'utente può ricevere il file utilizzando uno qualsiasi dei seguenti comandi:
$ croc dexter-cowboy-soprano
Oppure usa:
$ croc --yes dexter-cowboy-soprano > out
Qui, --yes
non chiederà alcuna conferma e accetterà automaticamente tutte le richieste.
Imposta cartella di output
Per impostazione predefinita, Croc scaricherà i dati nella directory di lavoro corrente. Puoi fare in modo che utilizzi un percorso di download diverso usando --out
bandiera.
$ croc send file.txt
Risultato di esempio:
Sending 'file.txt' (116 B)
Code is: program-public-mystery
On the other computer run
croc program-public-mystery
Sul lato ricevente, esegui:
$ croc --out ~/Downloads
Inserisci la frase in codice quando richiesto.
Ricevere aiuto
Per assistenza, esegui:
$ 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)