PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Redhat + Suse] 2 Server: Automatischer Abgleich per SCP



ClausVB
05.08.05, 12:13
Ausgangssituation: 2 Server, ein DEV- und ein LIVE-Server

Ziel: DEV- und LIVE-Server synchronisieren

Erklärung: Ich muss einen Cronjob anlegen, der 3x mal am Tag mit SCP das Verzeichnis "ssi" plus Unterverzeichnisse vom DEV [Redhat 8.x] auf den LIVE [Suse Enterprise] schieben muss.

Ich habe das schon mal versucht über


DEV:~ # ssh-keygen -b 1024 -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/root/.ssh/identity):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/identity.
Your public key has been saved in /root/.ssh/identity.pub.
The key fingerprint is:
so:me:ke:y:1c:b9:ea:ad:55:5b:71:1b:fd:71:a6:c4 root@DEV
DEV:~ # ls -la /root/.ssh/
total 16
-rw------- 1 root root 526 Jun 25 10:27 identity
-rw-r--r-- 1 root root 330 Jun 25 10:27 identity.pub
DEV:~ #
aber das funktioniert nur mit leerem Passwort, da ich es nicht hinbekomme dem Cronjob (verschlüsselt) das Passwort beizubringen. Ein leeres Passwort hat den negativen Effekt, dass man mit "ssh LIVE" ohne Passwort auf den LIVE kommt. Das ist nicht gewollt.

Aspekt Sicherheit: Mit "ssh LIVE" darf es NICHT möglich sein, ohne Passwort-Abfrage vom DEV auf den LIVE zu connecten. Mein Chef möchte das nicht, weil das Root-PW des DEV ca. 7 Leuten bekannt ist, aber das des LIVE nur 3 Leute und es sollen nicht alle 7 auf den LIVE connecten können. Natürlich müsste jemand nur die Cronjob-Datei auslesen, wenn dass PW dort im Klartext da steht. Deswegen wäre eine verschlüsselte Variante am besten, falls das überhaupt geht.

Denkbar wäre natürlich einen User zu generieren, dessen PW niemandem bekannt ist. Dazu wäre dann Insider-Wissen nötig, um mit "su - geheim_user" und dann "ssh LIVE" auf den LIVE-Server zu wechseln.

Kennt jemand ein anderes Verfahren? Oder weiß jemand, wie ich das mit einem Passphrase hinbekomme, die verschlüsselt in der Cronjobdatei steht?

Danke und Gruß
Claus

PS: Gelesen habe ich die Posts:
http://www.linuxforen.de/forums/showthread.php?p=1021182&highlight=SCP+Cronjob#post1021182
http://www.linuxforen.de/forums/showthread.php?p=810420&highlight=SCP+Cronjob#post810420
http://www.linuxforen.de/forums/showthread.php?t=43503&highlight=SCP+Cronjob

quinte17
05.08.05, 15:45
expect ist vielleicht die antwort

ViennaAustria
05.08.05, 20:21
Hallo!

Das Einloggen ohne Passwort per SSH ist recht elegant möglich. Dazu musst Du am "Quellrechner" mit dem Benutzeraccount, von dem Du weg-verbinden willst, ein Schlüsselpaar generieren. Den public Key überträgst Du auf den Zielrechner in den Account, auf welchen Du einloggen möchtest.

Wenn die Zielmaschine das nicht im SSH Dämon rauskonfiguriert hat, kannst Du dann ohne Passwort (also auch per Batchfile) einloggen oder Daten übertragen. Das verwenden wir allerorts sehr erfolgreich.

Nachdem Dir meine allgemeine Erklärung oben vermutlich noch nicht viel helfen wird, musst Du mir zuerst die Frage beantworten, welchen SSH Client/Server Du verwendest. Ich kann Dir bei openssh und der "commercial" SSH (ftp://ftp.ssh.org/pub/ssh/) weiterhelfen, weil wir die beide verwenden (die "commercial" SSH ist auch frei im Source verfügbar, mit der openssh kompatibel und kann eine sagenhafte Sache für Batch-Processing, die die openssh nicht hat, nämlich zusätzlich zum "secure copy" auch "secure move").

servus,
Thomas

quinte17
06.08.05, 13:04
lol ein secure move... was für ein "vorteil" *gg*
ein move ist ja ncihts anderes als ein copy mit dem anschließenden löschen der quelldatei. kann man auch mit rm regeln..
würde aber vorher prüfen ob des richtig angekommen ist.. kann sein, dass des des smv von denen macht, tuts des auch?

greetz

Roger Wilco
06.08.05, 14:59
Ich würde das mit rsync über SSH mit einem eingeschränkten SSH Public-Key realisieren.
Mit eingeschränktem SSH Key meine ich, dass nur das rsync-Kommando erlaubt ist (man kann die erlaubten Befehle einschränken). Dadurch ersparst du dir zum einen die Passworteingabe, kannst aber sicher sein, dass niemand etwas macht, was er/sie nicht soll.

marce
06.08.05, 19:29
oder alternativ den anderen Weg: das Live zieht die Daten vom Dev

ClausVB
07.08.05, 20:56
Ich würde das mit rsync über SSH mit einem eingeschränkten SSH Public-Key realisieren.
Mit eingeschränktem SSH Key meine ich, dass nur das rsync-Kommando erlaubt ist (man kann die erlaubten Befehle einschränken). Dadurch ersparst du dir zum einen die Passworteingabe, kannst aber sicher sein, dass niemand etwas macht, was er/sie nicht soll.

Von RSYNC habe ich schon gehört, dazu finde ich auch bestimmt eine Menge im Netz. Aber wie meinst Du das mit dem Einschränken? Wenn ich mit "ssh-keygen" einen Schlüssel generiere, kann ich ihm dann sagen: "Erlaube nur diesen Befehl ...?"

Gibt es dafür Tutorials? Ich suche morgen hier mal im Forum, ob es was zu RSYNC gibt.

Danke und Gruß
Claus

Tomek
08.08.05, 10:19
Schau bitte mal hier:
http://www.linux-magazin.de/Artikel/ausgabe/2004/09/backups/backups.html