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 🙂