SSH Passwörter cachen oder an script übergeben
Hallöle! Ich zerbrech mir gerade meinen hübschen Kopf[TM] undkomme nicht auf die richtige Idee. Ich möchte/muss ein Script basteln was verschiedene Aufgaben local und remote - via ssh auf verschiedenen und wechselnden Zielen, - ausführen soll, also etwa: #!/bin/sh foobar_here ssh foobar_there ssh foobar_to_other barfoo_here ... Konkret möchte ich mit einem Script lokal und auf verschiedenen ssh remote arbeiten und zwar mit fs-operationen und cmd-aktionen. Dabei kann ich NICHT mit ssh-keys arbeiten, der Schlüsseltausch wäre einfach zu aufwendig und ist auch nicht nötig. Folgende Fragen: Gibt es die Möglichkeit ssh-Paswörter zu Cachen? Ähnlich wie ssh-agent - den ich ja leider NICHT nutzen kann/will. Kann man doch irgendwie die Passwörter an's script zu übergeben? Like: echo $PASS|ssh ... Also meine Vorstellung ist, dass ich mein script aufrufe und die benötigten Passwörter übergebe und dann Kaffetrinken kann. ;-) Tschös Sue -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
*** Sandre Useres
Konkret möchte ich mit einem Script lokal und auf verschiedenen ssh remote arbeiten und zwar mit fs-operationen und cmd-aktionen. Dabei kann ich NICHT mit ssh-keys arbeiten, der Schlüsseltausch wäre einfach zu aufwendig
Was ist daran denn bitte Aufwändig?
Kann man doch irgendwie die Passwörter an's script zu übergeben? Like: echo $PASS|ssh ...
'man expect'? HTH Micha -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Michael Meyer schrieb:
*** Sandre Useres
wrote: Konkret möchte ich mit einem Script lokal und auf verschiedenen ssh remote arbeiten und zwar mit fs-operationen und cmd-aktionen. Dabei kann ich NICHT mit ssh-keys arbeiten, der Schlüsseltausch wäre einfach zu aufwendig
Was ist daran denn bitte Aufwändig?
Wechselnde Systeme mit wechselnden SSH-Keys, weil mount per Live-CD. Und da immer den Key hinterher zu pflegen ist mir überflüssig, wenn es auch mit PW geht.
Kann man doch irgendwie die Passwörter an's script zu übergeben? Like: echo $PASS|ssh ...
'man expect'?
Hui, sieht aber ganz schön komplex aus. Muss ich mir mal in Ruhe anschauen. Aber wieder eine neue Sprache... :-? Tschau Sue -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 25.11.2010 22:39, schrieb Sandre Useres:
Michael Meyer schrieb:
*** Sandre Useres
wrote: Konkret möchte ich mit einem Script lokal und auf verschiedenen ssh remote arbeiten und zwar mit fs-operationen und cmd-aktionen. Dabei kann ich NICHT mit ssh-keys arbeiten, der Schlüsseltausch wäre einfach zu aufwendig
Was ist daran denn bitte Aufwändig?
Wechselnde Systeme mit wechselnden SSH-Keys, weil mount per Live-CD. Und da immer den Key hinterher zu pflegen ist mir überflüssig, wenn es auch mit PW geht.
Wir haben uns dazu ein Script erstellt das die Einrichtung dafür erledigt. Unter dem Strich geht es nachher schneller und auch zuverlässiger. Wie immer muß man am Anfang etwas Zeit investieren. Gruß Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422 Für die Erstellung unserer Dokumente benutzen wir die Produkte aus dem Microsoft Office 2007 Paket. Sollte sich ein Anhang in der Mail befinden, der mit einer älteren Office Version nicht geöffnet werden kann, installieren Sie bitte das Compatibility Pack für Office 2007. http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466&DisplayLang=de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Ralf Prengel schrieb:
*** Sandre Useres
wrote: Wechselnde Systeme mit wechselnden SSH-Keys, weil mount per Live-CD. Und da immer den Key hinterher zu pflegen ist mir überflüssig, wenn es auch mit PW geht.
Wir haben uns dazu ein Script erstellt das die Einrichtung dafür erledigt. Unter dem Strich geht es nachher schneller und auch zuverlässiger. Wie immer muß man am Anfang etwas Zeit investieren.
Völlig klar, auch ich will ja ein Script bauen um zu automatisieren; weil ich faul bin. ;-) Beispiel 1. Syncronisieren von Festplatten vom/zum Server via Netzwerk und Live-CD (z.b. KNOPPIX): Der ssk-key wird jedes mal neu erzeugt und damit ändert sich auch der Fingerprint des Systems. Aber ausser Festplatten dranhängen und ssh starten, will/soll da nichts mehr dran geschraubt werden Beispiel 2. Backup mit komplexen Aufgaben: Hier muss das Script mal local was machen dann wieder auf dem BAK-Server. Eine Lösung mit einzelnen ssh abfragen per ssk-key geht hier wohl. ABER, für jedes mal ssh wird eine neue Verbindung und damit ein neuer LOG-Eintrag gemacht, bei vielen Operationen ist das irgendwie störend, und man stellt sich die Frage: Kann man das nicht bessermachen. Und: Auch schon erlebt, das da macnhe FW anfing zu blinken... Hmm. sind jetzt doch irgendwie zwei Fragen: ? Kann man SSH-Paswörter (NICHT ssh-key) Cachen um in einem Script nur einmal das PW anzugeben? ? Gibt es eine Möglichkeit in einem Script für die nächten Befehle auszuwählen welche ssh-verbindung gemeint ist: Quasi ssh-Verbindungen wie standard Pipes zu behandeln? (Hmm, sind auch verschiedene Aufgaben: copy from/to remote, copy rem_to_rem, sh-op's) Also einen Rechner über ssh mit EINER Verbindung komplett (transparent?) anzusteuern. Ist nicht leicht heraus zu bekommen was man so denkt... ;-) Tschö' Sue -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am 26.11.2010 10:31, schrieb Sandre Useres:
Beispiel 1. Syncronisieren von Festplatten vom/zum Server via Netzwerk und Live-CD (z.b. KNOPPIX):
Bau dir eine Knoppix das alles beinhaltet und du hast Ruhe. Einmal Keys erstellen und beim remastern mit einbauen. Ich mache hier Backups per PXE indem ich ein mit Kiwi erstelltes Suse-Image nutze. Gruß Ralf Prengel Manager Customer Care Comline AG Hauert 8 D-44227 Dortmund/Germany Fon +49 231 97575 904 Fax +49 231 97575 257 Mobil +49 151 10831 157 EMail Ralf.Prengel@comline.de www.comline.de Vorstand Stephan Schilling, Erwin Leonhardi Aufsichtsrat Dr. Franz Schoser (Vorsitzender) HR Dortmund B 14570 USt.-ID-Nr. DE 124727422 Für die Erstellung unserer Dokumente benutzen wir die Produkte aus dem Microsoft Office 2007 Paket. Sollte sich ein Anhang in der Mail befinden, der mit einer älteren Office Version nicht geöffnet werden kann, installieren Sie bitte das Compatibility Pack für Office 2007. http://www.microsoft.com/downloads/details.aspx?FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466&DisplayLang=de -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Fri, November 26, 2010 10:31 am, Sandre Useres wrote:
? Kann man SSH-Paswörter (NICHT ssh-key) Cachen um in einem Script nur einmal das PW anzugeben?
? Gibt es eine Möglichkeit in einem Script für die nächten Befehle auszuwählen welche ssh-verbindung gemeint ist: Quasi ssh-Verbindungen wie standard Pipes zu behandeln? (Hmm, sind auch verschiedene Aufgaben: copy from/to remote, copy rem_to_rem, sh-op's) Also einen Rechner über ssh mit EINER Verbindung komplett (transparent?) anzusteuern.
Seit OpenSSH 4.0 kann man einen ControlMaster nutzen. Damit authentifiziert man sich einmalig und solange diese Verbindung steht, benutzen alle anderen ssh-Connections diesen SSH-Socket und man spart sich somit die Eingabe eines Passworts. http://nion.modprobe.de/blog/archives/502-Speeding-up-SSH-ControlMaster.html Grüße, Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Christian Brabandt schrieb:
Seit OpenSSH 4.0 kann man einen ControlMaster nutzen. Damit authentifiziert man sich einmalig und solange diese Verbindung steht, benutzen alle anderen ssh-Connections diesen SSH-Socket und man spart sich somit die Eingabe eines Passworts.
http://nion.modprobe.de/blog/archives/502-Speeding-up-SSH-ControlMaster.html
Also das klingt doch schon ganz gut, werde ich auf jeden Fall austesten. Ist vielleicht die Lösung für beide Anforderungen... Danke! Tschö' Sue -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Thu, 25 Nov 2010 17:49:00 +0100
schrieb Sandre Useres
Hallöle!
Ich zerbrech mir gerade meinen hübschen Kopf[TM] undkomme nicht auf die richtige Idee.
Ich möchte/muss ein Script basteln was verschiedene Aufgaben local und remote - via ssh auf verschiedenen und wechselnden Zielen, - ausführen soll, also etwa:
#!/bin/sh foobar_here ssh foobar_there ssh foobar_to_other barfoo_here ...
Konkret möchte ich mit einem Script lokal und auf verschiedenen ssh remote arbeiten und zwar mit fs-operationen und cmd-aktionen. Dabei kann ich NICHT mit ssh-keys arbeiten, der Schlüsseltausch wäre einfach zu aufwendig und ist auch nicht nötig.
Folgende Fragen:
Gibt es die Möglichkeit ssh-Paswörter zu Cachen? Ähnlich wie ssh-agent - den ich ja leider NICHT nutzen kann/will.
Kann man doch irgendwie die Passwörter an's script zu übergeben? Like: echo $PASS|ssh ...
Du hast natürlich auch die Möglichkeit, ssh keys ohne Passwort zu erstellen, dann einfach noch die id_rsa.pub in die authorized_keys auf den remote hosts einbinden. -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:8EF7B6C6 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Sandre Useres schrieb:
Ich möchte/muss ein Script basteln was verschiedene Aufgaben local und remote - via ssh auf verschiedenen und wechselnden Zielen, - ausführen soll, also etwa:
#!/bin/sh foobar_here ssh foobar_there ssh foobar_to_other barfoo_here ...
Konkret möchte ich mit einem Script lokal und auf verschiedenen ssh remote arbeiten und zwar mit fs-operationen und cmd-aktionen. Dabei kann ich NICHT mit ssh-keys arbeiten, der Schlüsseltausch wäre einfach zu aufwendig und ist auch nicht nötig. ...
Kleiner Zwischenbericht: Ab openssh.4.0 gibt es die Option ControlMaster mit der man quasi zusätzliche ssh Aufrufe über den selben Kanal laufen lassen kann. Das hat den Vorteil, z.b. in einen script nur beim ersten mal nach den Passwort gefragt zu werden und alle ssh Verbindungen laufen über einen Kanal was dann im Remote-Log auch nur mit einem Eintrag zu Buche schlägt. Als erstes sollte man ein extra Verzeichnis anlegen: #> mkdir ~/.ssh/tmp dann die eigentliche Config (erweitern), hier im Usermode: #> cat >> ~/.ssh/config << EOF Host * ControlPath ~/.ssh/tmp/master-%r@%h:%p ControlMaster auto EOF Ab sofort werden ssh Verbindungen zum gleichen Rechner über den selben Kanal abgewickelt, WENN noch eine ssh-Verbindung besteht. Bei der ersten Verbindung - ODER wenn noch keine, oder keine mehr, besteht - erfolgt ggf. eine Passwortanfrage. Dies funktioniert mit Password UND ssh-Keys mit oder ohne Passwort. Um z.B. eine Verbindung herzustellen und offenzuhalten reicht ein: #> ssh -l [USER] -f -n 'sleep 360s' # 350s == 5min Das -f -n zwingt den ssh in den Hintergrund. Aber ACHTUNG *!!SICHERHEITSRISIKO!!* Solange noch eine angemeldete Verbindung besteht, kann mit der selben Nutzerkennung JEDERZEIT eine neue Verbindung OHNE Passwortabfrage initiert werden. Das ist zwar für den Lauf eines Scriptes erwünscht, jedoch sollte das Timeout nur auf unbedingt notwendige Länge beschränkt werden. Wenn man innerhalb seines Scriptes mehrere ssh-Aktionen fährt, setzt man vielleicht besser ein 'doorstopper' hinter die einzelnen Komandos, um die Zeit zum nächsten ssh zu überbrücken - (!) das detach = -f -n nicht vergessen! -. Also etwa: ... ssh -l [USER] -f -n 'df -h ; foobar; sleep 10s' # do something here ssh -l [USER] -f -n 'do everything there; sleep 10s' ... Der ssh-Kanal bleibt solange offen bis das letzte ssh-Kommando endet. Also egal ob das sleep abgelaufen ist, solange das rsync -e 'ssh ...' noch läuft, bleibt der Kanal offen. Möchte man das temporär abschalten hilft die Option -o - oder man dreht das alles um - ;-) #> ssh -o ControlMaster=no ... Ob man dem rsync ssh auch ein sleep mitgeben kann, wage ich zu bezweifeln. Vielleicht hat ja noch jemand eine Idee wie man sowas händeln könnte. Der bisherige Ansatz wäre: Ein ssh-Kanal mit ausreichender Zeit öffnen in der das rsync auf jeden Fall durchkommt, und dann ggf. den 'doorstopper' killen. So, das war's erstmal. Viel Spass noch beim ausprobrieren! ;-) Tschö' Sue -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (6)
-
Christian Brabandt
-
Dieter Kluenter
-
Marko Käning
-
Michael Meyer
-
Ralf Prengel
-
Sandre Useres