Passwort eingeben lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
audacity363
User
Beiträge: 83
Registriert: Dienstag 6. August 2013, 18:59

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.
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.
audacity363
User
Beiträge: 83
Registriert: Dienstag 6. August 2013, 18:59

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
audacity363
User
Beiträge: 83
Registriert: Dienstag 6. August 2013, 18:59

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Nein, der SSH Client guckt doch von selbst nach, das geht standardmäßig. Zumindest bei SSH und Git.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
audacity363
User
Beiträge: 83
Registriert: Dienstag 6. August 2013, 18:59

Ahh okey sry war gerade vollkommen neben der Bahn. Du hast natürlich recht. Hat auch geklappt.
Antworten