Remote Installation mit SSH & SCP: ssh-agent (pwd cachen) und 'always connec

Software besorgen und anwenden
Post Reply
Message
Author
vitaminc

Remote Installation mit SSH & SCP: ssh-agent (pwd cachen) und 'always connec

#1 Post by vitaminc »

Hi,

ich stehe gerade vor dem Problem Software auf etwa 1000 Server verteilen zu müssen. Ich habe mir einen RSA Key erzeugt und auf allen Rechnern abgelegt. Von einem Rechner möchte ich nun die Installationen per Skript durchführen, also:

for i in $(hosts...); do scp foo.rpm...; ssh $i "sudo rpm -ivh foo.rpm"; done

Das funktioniert so weit so gut. Das Problem ist nun, dann ich für jeden Server erstmal einen Eintrag in der .ssh/known_hosts Datei erzeugen muss, also bei der Verbindung die Frage "Are you sure you want to continue connecting (yes/no)?" mit yes beantworten muss. Kann man das automatisieren, so dass ich diese Frage nicht mehr selber beantworten muss? Ich habe in der man page nichts gefunden.

Das nächste Problem ist das cachen der Passwörter. Ich möchte nicht für jeden Server das PWD neu eingeben müssen (wie gesagt die Installationen sollen alle per Skript ablaufen). Also hatte ich den ssh-agent gestartet und meinen Key mit ssh-add hinzugefügt. Das funktioniert für einen Server scheinbar auch ganz gut; ich muss das Password jedenfalls nicht mehr eingeben. Wenn ich aber in der for Schleife das ganze über alle Server laufen lasse, kommen noch ständig Passwort Abfragen. Muss man hier den ssh-agent anders konfigurieren, oder liegt das daran, dass der Host noch nicht bekannt ist (im Sinne von .ssh/known_hosts, s.o.)?

Für ein paar Hinweise wäre ich dankbar.

demon
Pro-Linux
Posts: 389
Joined: 24. Nov 1999 0:05
Location: Wörth am Rhein
Contact:

#2 Post by demon »

Hallo,

Frage 1:
Du meinst sicherlich die erste Anfrage, wenn der Host noch nicht bekannt ist. Man kann die Überprüfung der Keys abschalten. Dazu musst Du in die Config-Datei (auf dem Server) die Zeile "StrictHostKeyChecking no" hinzufügen. Am besten eine eigene Datei config im ~/.ssh-Dir ablegen und dort den Parameter eintragen.

Frage 2:
Du musst auf jeden Fall den Public-Key des _Servers_ auf die Clients kopieren. Der Key muss in der Datei authorized_keys oder authorized_keys2 vorhanden sein. Dass der Host noch nicht in der Datei known_hosts vorhanden ist, spielt keine Rolle.

Cheers,
demon

vitaminc

#3 Post by vitaminc »

Vielen Dank für die Info! Ich bin jetzt ein ganzes Stück weiter und es sieht recht gut aus;) Ich werde gleich das Skript nochmal über alle Server laufen lassen. Also Danke für die Hilfe.

Post Reply