Seite 1 von 1

Passwort eingeben lassen

Verfasst: Donnerstag 6. März 2014, 12:02
von audacity363
Guten Tag

ich soll ein kleines Script schreiben, welches eine Subversion Repo auscheckt und dann an mehrere Unix Rechner verteilt. An sich ist das ganze auch keine Problem nur soll es eigenständig im Hintergrund laufen und kein Input von Usern erwarten.
Das Grundgerüst zum Auschecken usw. steht nur muss man ja bei jedem mal sein Passwort eingeben.
Das Auschecken soll auch nicht über das Python Module gemacht werden, da man dies nicht so einfach auf Unix Maschinen installiert bekommt, sondern direkt über die Shell.
Also

Code: Alles auswählen

svn checkout svn+ssh://user@link.zu.svn/srv/svn/repos/verteiler_test/trunk
Nun ja jetzt zu meiner eigentlichen Frage:
Wie bekomme ich es hin so mit der Shell zu Kommunizieren, dass wenn eine Eingabe erforderlich ist diese auch direkt von Python getätigt wird?
Habe schon Popen gefunden:

Code: Alles auswählen

proc = Popen('svn checkout svn+ssh://user@link.zu.svn/srv/svn/repos/verteiler_test/trunk', shell = True, stdin=PIPE, stdout=PIPE)
proc.stdout.readline()
proc.stdin.write('password\n');
Nur leider geht er erst weiter, wenn der Befehl von Popen abgeschlossen wurde, also gibt es kein Stdin und out mehr.

Re: Passwort eingeben lassen

Verfasst: Donnerstag 6. März 2014, 12:16
von BlackJack
@audacity363: Ich würde versuchen das ohne Passwort zu lösen. Bei SSH regelt man das üblicherweise indem man die öffentlichen Schlüssel der Gegenseite bekannt macht.

Re: Passwort eingeben lassen

Verfasst: Donnerstag 6. März 2014, 12:27
von audacity363
beim rcp natürlich nur leider kann man beim SVN Client keinen private Key mitgeben, bzw. ich habe keine saubere Möglichkeit gefunden. Nur über eine Environment Variable und da müsste man durch die ganze Abteilung laufen und ihnen kla machen, dass kein Anderer diese benutzen darf.

Re: Passwort eingeben lassen

Verfasst: Donnerstag 6. März 2014, 12:46
von Leonidas
Das muss man doch gar nicht. Ich nehme stark an, dass SVN den Key aus ``~/.ssh/id_*`` her nimmt, automatisch. Man muss nur auf der Gegenseite den entsprechenden public Key hinterlegen.

Ich habe allerdings keinen SVN-Server zum testen. Ist auch total aufwändig das aufzusetzen :twisted:

Re: Passwort eingeben lassen

Verfasst: Donnerstag 6. März 2014, 12:55
von audacity363
Ja kla wird dieser auf Serverseite automatisch benutzt aber irgendwie muss man ihn ja auch vom Client aus mitgeben und da habe ich keine saubere Möglichkeit gefunden.

Re: Passwort eingeben lassen

Verfasst: Donnerstag 6. März 2014, 13:21
von Leonidas
Nein, der SSH Client guckt doch von selbst nach, das geht standardmäßig. Zumindest bei SSH und Git.

Re: Passwort eingeben lassen

Verfasst: Donnerstag 6. März 2014, 13:43
von audacity363
Ahh okey sry war gerade vollkommen neben der Bahn. Du hast natürlich recht. Hat auch geklappt.