Private-Public Key-Pair for rsync

Aus Hot-Chilli Wiki
Wechseln zu: Navigation, Suche


Folgendes HOWTO stand Pate fuer diese Prozedur: SSH-with-Keys-HOWTO

Einsatz-Szenario: Von Server SourceServer soll per rsync regelmaessig eine Spiegelung auf den Server BackupServer erfolgen. Dieser rsync Task soll ueber SSH transferieren und z.B. per cron startbar sein. Aus letzterer Randbedingung ergibt sich die Notwendigkeit, dass keine Passwortabfrage eine Benutzer-Interaktion noetig macht. Aus diesem Grunde wurde auf das Private/Public Key-Feature von SSH zurueckgegriffen. Das oben verlinkte HOWTO erklaert noch einige Hintergruende zu der Thematik und geht auch auf SSH Version 1 ein, auf derlei wird hier verzichtet.

Folgende Schritte sind durchzufuehren:

1) 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 uebertragen wir den erstellten public key auf den BackupServer. Dazu greifen wir auf SCP zurueck, an dieser Stelle muss der Login noch ganz gewohnt ueber die Eingabe des Passworts erfolgen.

2) SCP Uebertragung:

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 ueber SSH statt und muss wieder ueber Eingabe des Passworts erfolgen.

3) 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 geloescht werden.

Abschliessend kann man die Verbindung nun testen. Dazu loggen wir uns aus und nun erneut ein (ohne Verwendung eines Passworts).

4) 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 gewoehnlicher rsync Befehl entsprechend verwendet werden:

SourceServer:/# rsync -avz -e "ssh -i /home/myuser/rsync/SourceServer-rsync-key" /mnt/myimportantdata/ mybackupuser@BackupServer:/mnt/myimportantdata/
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge