Frage: Wenn ich rsync durchführe, fragt es nach meinem Passwort auf dem Remote-Server, bevor die Übertragung gestartet wird. Ich möchte dies vermeiden und rsync ohne Passwort durchführen. Können Sie anhand eines Beispiels erklären, wie Sie rsync über ssh ohne Passwort unter Linux einrichten?
Antwort: Die folgenden Schritte erklären, wie Sie rsync über ssh einrichten, das nicht nach einem Passwort fragt. Dies ist hilfreich, wenn Sie einen Cron-Job für die automatische Sicherung mit rsync planen.
1. Testen Sie rsync über ssh (mit Passwort):
Führen Sie ein rsync durch, um sicherzustellen, dass es nach dem Passwort für Ihr Konto auf dem Remote-Server fragt und die Dateien erfolgreich auf den Remote-Server kopiert.
Das folgende Beispiel synchronisiert den lokalen Ordner /home/ramesh mit dem Remote-Ordner /backup/ramesh (auf dem Server 192.168.200.10).
Wir haben rsync in unseren vorherigen Artikeln mit 15 rsync-Beispielen ausführlich besprochen.
Dies sollte Sie nach dem Passwort Ihres Kontos auf dem Remote-Server fragen.
rsync -avz -e ssh /home/ramesh/ [email protected]:/backup/ramesh/
2. ssh-keygen generiert Schlüssel.
Richten Sie jetzt ssh so ein, dass es nicht nach einem Passwort fragt, wenn Sie ssh ausführen. Verwenden Sie ssh-keygen auf dem lokalen Server, um öffentliche und private Schlüssel zu generieren.
$ ssh-keygen Enter passphrase (empty for no passphrase): Enter same passphrase again:
Hinweis: Wenn Sie aufgefordert werden, die Passphrase einzugeben, drücken Sie einfach die Eingabetaste und geben Sie hier kein Passwort ein.
3. ssh-copy-id kopiert den öffentlichen Schlüssel auf den entfernten Host
Verwenden Sie ssh-copy-id, um den öffentlichen Schlüssel auf den entfernten Host zu kopieren.
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10
Hinweis: Das obige fragt nach dem Passwort für Ihr Konto auf dem Remote-Host und kopiert den öffentlichen Schlüssel automatisch an den entsprechenden Ort. Wenn ssh-copy-id für Sie nicht funktioniert, verwenden Sie die zuvor besprochene Methode, um die ssh-Kennwortlose Anmeldung einzurichten.
4. Führen Sie rsync über ssh ohne Passwort durch
Jetzt sollten Sie in der Lage sein, per SSH auf den Remote-Host zuzugreifen, ohne das Passwort einzugeben.
ssh 192.168.200.10
Führen Sie das rsync erneut durch, es sollte Sie dieses Mal nicht auffordern, ein Passwort einzugeben.
rsync -avz -e ssh /home/ramesh/ [email protected]:/backup/ramesh/
Wenn Sie diesen rsync-Sicherungsjob automatisch planen möchten, verwenden Sie cron, um ihn einzurichten.