Automatische VPN Verbindung aus Python-Script herstellen

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
lacke_
User
Beiträge: 6
Registriert: Freitag 1. Dezember 2017, 16:09

Hallo Zusammen,

ich suche derzeit einen Weg mit dem ich eine automatische VPN Verbindung aus einem Python-Script herstellen kann.
Manuell klappt das super, dazu verwende ich den VPN Client openconnect.
Dabei muss ich natürlich die Group, den Username und das Passwort manuell eingeben.
Gibt es dafür eine automatische Möglichkeit dies in einem Python-Script zu machen(diese muss nicht besonders sicher sein)?
Derzeit versuche ich es auf diesen Weg:

Code: Alles auswählen

os.system('sudo  openconnect -u userid -b vpn.xxxx.de')
time.sleep(5)
os.system('vpn.xxxx.de')
os.system('User')
os.system('Passwort')
time.sleep(30)
Dies funktioniert so nicht, ist dies so überhaupt möglich? bzw wie kann ich den Fehler lokalisieren?

mit freundlichen Grüßen

Lacke
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

os.system solltest du nicht verwenden. Steht auch *GANZ DICK* in der Dokumentation.

Und einer der Gruende dafuer ist, dass es keine Kommunikation mit dem gestarteten Prozess erlaubt. Fire and Forget. Einfach danach neue os.system calls rauszuballern startet halt neue Programme. Aber das ist kein Kanal zu einem Terminal oder so.

Benutz stattdessen entweder das subprocess-Modul, und wenn moeglich gleich die richtigen Argumente um das ganze mit *einem* Aufruf zu erledigen.

Sollte es aber nur moeglich sein, Passwoerter ueber das Terminal einzugeben, dann musst du das Modul pexpect installieren und benutzen.
lacke_
User
Beiträge: 6
Registriert: Freitag 1. Dezember 2017, 16:09

Vielen Dank für deine Hilfe. Ich habe noch eine weitere Frage:

Kann man das ganze dann auch verfolgen? Also kann man sich die Ausgabe des Kommandofenster anzeigen lassen wenn man es über Python bedient?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ja, kann man. Du bekommst die Ausgabe ja. Was du damit machst ist dein Ding - ausdrucken, auf Deckchen sticken, per twitter versenden - die Moeglichkeiten sind unendlich.
Antworten