GNU/Linux >> Znalost Linux >  >> Linux

Proč „sshpass“ není správný způsob automatizace přenosů souborů v Linuxu

Otázka: Byl mi přidělen úkol automatizovat přenosy souborů mezi vzdálenými počítači pomocí scp. Nejsem si ale jistý, jak zadat heslo jako parametr do scp příkaz. Jeden z můj přítel navrhl používat ‘sshpass ‘ (může brát heslo jako argument), ale můj šéf říká „sshpass není správný způsob, jak to udělat a není to bezpečné “. Co navrhujete?

– Ravi

Odpověď:

Ravi, váš přítel má odpověď na vaši otázku, ale váš šéf má pravdu . „sshpass ‘ obslužný program bere heslo jako argument, ale je méně bezpečný. Místo toho byste pro zabezpečené přenosy souborů měli používat klíče SSH.

Vyzkoušíme obě metody a uvidíme, která je bezpečnější.

Pomocí sshpass

Nainstalujte ‘sshpass ‘ pomocí níže uvedeného příkazu:

$ 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

Po instalaci jej můžete používat následovně:

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

Upozornění: Vzhledem k tomu, že heslo je uvedeno v příkazu, mohou ho zobrazit ostatní uživatelé přihlášení k počítači pomocí „w ‘příkaz. Abyste tomu zabránili, můžete heslo uložit do souboru a předat soubor jako argument příkazu (viz níže):

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

Upozornění: Heslo lze stále dohledat ze souborů protokolu nebo historie.

Verdikt tedy zní, že „sshpass“ není bezpečná metoda . Místo toho, jak navrhl váš šéf, byste měli používat zabezpečené klíče SSH pro připojení bez hesla.

Použití zabezpečených klíčů SSH

Vygenerujte ssh klíče na zdrojovém počítači, jak je uvedeno níže:

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

To je vše, máte nastaveno ssh připojení bez hesla mezi strojem-A a strojem-B. Zkuste přenést soubory bez nutnosti zadávat heslo:

$ scp file.txt user@remote_machine:

Hotovo! Ravi, někdy mají ŠÉFOVÉ pravdu 🙂


Linux
  1. Zkopírujte soubory v terminálu Linux

  2. Přejmenujte soubor v terminálu Linux

  3. Přesunout soubory v terminálu Linux

  1. Jak upgradovat na Linux Mint 20.3:Správná cesta

  2. Linux – Proč v systému není přítomen žádný souborový systém Rootfs?

  3. Proč překladový soubor Bash neobsahuje všechny chybové texty?

  1. Kde je hlavičkový soubor <conio.h> v systému Linux? Proč nemohu najít <conio.h>?

  2. Proč se funkce zavření nazývá release v `struct file_operations` v jádře Linuxu?

  3. Proč systém Windows nerozpozná soubory uvnitř oddílů Linux?