Otázka: Když provádím rsync, před zahájením přenosu se mě zeptá na heslo na vzdáleném serveru. Rád bych se tomu vyhnul a provedl rsync bez hesla. Můžete vysvětlit na příkladu, jak nastavit rsync přes ssh bez hesla v Linuxu?
Odpověď: Následující kroky vysvětlují, jak nastavit rsync přes ssh, který nepožaduje heslo. To je užitečné, když plánujete úlohu cron pro automatické zálohování pomocí rsync.
1. Otestujte rsync přes ssh (s heslem):
Proveďte rsync, abyste se ujistili, že požaduje heslo pro váš účet na vzdáleném serveru a zda úspěšně zkopíruje soubory na vzdálený server.
Následující příklad synchronizuje lokální složku /home/ramesh se vzdálenou složkou /backup/ramesh (na serveru 192.168.200.10).
Podrobně jsme o rsync diskutovali v našich předchozích 15 článcích s příklady rsync.
To by vás mělo požádat o heslo vašeho účtu na vzdáleném serveru.
rsync -avz -e ssh /home/ramesh/ [email protected]:/backup/ramesh/
2. ssh-keygen generuje klíče.
Nyní nastavte ssh tak, aby při provádění ssh nepožadoval heslo. Použijte ssh-keygen na místním serveru ke generování veřejných a soukromých klíčů.
$ ssh-keygen Enter passphrase (empty for no passphrase): Enter same passphrase again:
Poznámka: Když budete požádáni o zadání přístupové fráze, stiskněte klávesu Enter a nezadávejte zde žádné heslo.
3. ssh-copy-id zkopíruje veřejný klíč na vzdálený hostitel
Pomocí ssh-copy-id zkopírujte veřejný klíč na vzdálený hostitel.
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10
Poznámka: Výše uvedené bude vyžadovat heslo k vašemu účtu na vzdáleném hostiteli a automaticky zkopíruje veřejný klíč na příslušné místo. Pokud vám ssh-copy-id nefunguje, použijte metodu, kterou jsme probrali dříve, k nastavení ssh hesla bez přihlášení.
4. Proveďte rsync přes ssh bez hesla
Nyní byste měli být schopni připojit se ke vzdálenému hostiteli pomocí ssh bez zadání hesla.
ssh 192.168.200.10
Proveďte rsync znovu, tentokrát by vás neměl žádat o zadání žádného hesla.
rsync -avz -e ssh /home/ramesh/ [email protected]:/backup/ramesh/
Pokud chcete tuto úlohu zálohování rsync naplánovat automaticky, nastavte ji pomocí cron.