Inhaltsverzeichnis
Private Public Key Pair für rsync
Folgendes HOWTO stand Pate fuer diese Prozedur: SSH-with-Keys-HOWTO
Einsatz-Szenario: Von Server SourceServer soll per rsync regelmäßig eine Spiegelung auf den Server BackupServer erfolgen. Dieser rsync Task soll über SSH transferieren und z.B. per cron startbar sein. Aus letzterer Randbedingung ergibt sich die Notwendigkeit, dass keine Passwortabfrage eine Benutzer-Interaktion nötig macht. Aus diesem Grunde wurde auf das Private/Public Key-Feature von SSH zurückgegriffen. Das oben verlinkte HOWTO erklärt noch einige Hintergründe zu der Thematik und geht auch auf SSH Version 1 ein, auf derlei wird hier verzichtet.
Folgende Schritte sind durchzuführen:
key-pairs erstellen
SourceServer:/home/myuser/rsync# ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa): /home/myuser/rsync/SourceServer-rsync-key Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/myuser/rsync/SourceServer-rsync-key. Your public key has been saved in /home/myuser/rsync/SourceServer-rsync-key.pub. The key fingerprint is: aa:bb:cc:dd:ee:ff:00:11:22:33:44:55:66:77:88:99 myuser@SourceServer The key's randomart image is: +--[ DSA 1024]----+ | | | | | | | . | | . . S . | | o + o + o | | . +.+ . o E | |oo oo.. + + + | |+.+.o =.o. . | +-----------------+
Anschliessend übertragen wir den erstellten public key auf den BackupServer. Dazu greifen wir auf SCP zurück, an dieser Stelle muss der Login noch ganz gewohnt über die Eingabe des Passworts erfolgen.
SCP Übertragung
scp /home/myuser/rsync/SourceServer-rsync-key.pub mybackupuser@BackupServer:/home/mybackupuser/ mybackupuser@BackupServer's password: SourceServer-rsync-key.pub 100% 603 0.6KB/s 00:00
Nun loggen wir uns auf dem BackupServer ein und binden das Keyfile korrekt ein. Der Login findet wieder über SSH statt und muss wieder über Eingabe des Passworts erfolgen.
Public Key auf BackupServer einbinden
ssh -l mybackupuser BackupServer mybackupuser@BackupServer's password: Welcome to BackupServer! > cd /home/mybackupuser/ > mkdir .ssh > chmod 700 .ssh > mv SourceServer-rsync-key.pub .ssh/ > cd .ssh > touch authorized_keys > chmod 600 authorized_keys > cat SourceServer-rsync-key.pub >> authorized_keys
Das File SourceServer-rsync-key.pub kann laut dem oben verlinkten HOWTO nun gelöscht werden.
Abschließend kann man die Verbindung nun testen. Dazu loggen wir uns aus und nun erneut ein (ohne Verwendung eines Passworts).
Verbindung testen
SourceServer:/home/myuser/rsync# ssh -i /home/myuser/rsync/SourceServer-rsync-key -l mybackupuser BackupServer Welcome to BackupServer! >
Voila! :)
Nun kann ein ganz gewöhnlicher rsync Befehl entsprechend verwendet werden:
SourceServer:/# rsync -avz -e "ssh -i /home/myuser/rsync/SourceServer-rsync-key" /mnt/myimportantdata/ mybackupuser@BackupServer:/mnt/myimportantdata/