GNU/Linux >> Linux Esercitazione >  >> Linux

Perché "sshpass" non è il modo giusto per automatizzare i trasferimenti di file in Linux

Domanda: Mi è stato assegnato un compito per automatizzare i trasferimenti di file tra macchine remote utilizzando scp. Ma non sono sicuro di come fornire la password come parametro a scp comando. Uno dei miei amici ha suggerito di utilizzare "sshpass ' comando (può prendere la password come argomento), ma il mio capo dice "sshpass non è il modo giusto per farlo e non è sicuro “. Cosa suggerisci?

– Ravi

Risposta:

Ravi, il tuo amico ha la risposta alla tua domanda, ma il tuo capo ha ragione . 'sshpass L'utilità prende la password come argomento, ma è meno sicura. Dovresti invece utilizzare le chiavi SSH per trasferimenti di file protetti.

Proviamo entrambi i metodi e vediamo quale è più sicuro.

Utilizzo di sshpass

Installa 'sshpass ' usando il comando seguente:

$ yum install sshpass

Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package sshpass.x86_64 0:1.05-1.el5 set to be updated
--> Finished Dependency Resolution

Una volta installato, puoi usarlo come di seguito:

sshpass -p "password" scp file.txt user@remote_machine:

Attenzione: Poiché la password è menzionata nel comando, può essere visualizzata da altri utenti che hanno effettuato l'accesso alla macchina utilizzando "w ' comando. Per evitarlo, puoi memorizzare la password in un file e passare il file come argomento al comando (mostrato di seguito):

$ echo "password" > passfile.txt
$ chmod 600 passfile.txt
$ sshpass -f passfile.txt scp file.txt user@remote_machine:

Attenzione: È ancora possibile risalire alla password dai file di registro o dalla cronologia.

Quindi il verdetto è che "sshpass" non è un metodo sicuro . Invece, come suggerito dal tuo capo, dovresti utilizzare chiavi SSH sicure per connessioni senza password.

Utilizzo di chiavi ssh sicure

Genera ssh-keys sul computer di origine come di seguito:

[machine-A ]$ ssh-keygen -t rsa
[machine-A ]$ scp ~/.ssh/id_rsa.pub user@machine-B:.ssh/authorized_keys

Ecco fatto, hai impostato la connessione ssh senza password tra la macchina-A e la macchina-B. Prova a trasferire i file senza dover inserire la password:

$ scp file.txt user@remote_machine:

Fatto! Ravi, a volte i BOSS hanno ragione 🙂


Linux
  1. Linux:perché non è presente alcun file system Rootfs sul sistema?

  2. Perché il file di traduzione Bash non contiene tutti i testi di errore?

  3. Il comando sed di Linux non modifica il file di destinazione

  4. Perché Windows non riconosce i file all'interno delle partizioni Linux?

  5. L'utilizzo di chown per modificare il proprietario del gruppo di una directory non è consentito... Perché?

Introduzione al file system Linux

Come modificare i file PDF in Linux nel modo più semplice possibile

Comprendere i runlevel di Linux nel modo giusto

EndeavourOS – Impara Arch nel modo giusto

Perché pr_debug del kernel Linux non fornisce alcun output?

Sotto Linux, è possibile crittografare una cartella/partizione in modo che non sia accessibile a nessuno senza la password?