SSH-Tunneling per Batch Datei oder direkt aus Vb

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von slice.

    SSH-Tunneling per Batch Datei oder direkt aus Vb

    Hallo,
    Ich bin seit ca. 1,5 Monaten dabei mit Visual Basic zu programmieren und stehe vor einem für mich nicht lösbaren Problem.

    Problembeschreibung:

    Ich programmiere eine Datenbank die mit einer Datenquelle im Internet (MySQL Server) per SSH-Tunneling verbunden ist. Ich kann jedoch nur auf die Datenbank zugreifen, wenn ich mit dem Programm "PUTTY" die SSH-Tunnelverbindung öffne, daraufhin funktioniert in der Programmierten Anwendung alles so wie es soll. Nun ist mir der Schritt (= Putty starten, Serverkonfiguration laden, Button klicken um Tunneling zu aktivieren) vor jedem Applikationstart zu aufwendig. Mein Ziel: Automatisch beim öffnen der programmierten Applikation das Programm "PUTTY" ebenso öffnen, die Serverkonfiguration automatisch laden und somit automatisch die Verbindung tunneln.

    -Meine Lösung:

    Ich habe eine Batch Datei (.bat) geschrieben, die sich im gleichen Ordner wie "PUTTY" befindet und beim ausführen automatisch die Serverkonfiguration lädt und eine SSH-Tunnelverbindung herstellt (mit "plink") aber auch das aufrufen der Batch-Datei möchte ich automatisieren.

    -Problem hierbei:

    Ich habe per

    Quellcode

    1. shell ("C:\Users\Desktop\Datenbank\PuTTY\plink.bat")
    versucht die Batch-Datei zu starten, auch mit Erfolg, jedoch kann der in der Batch-Datei befindliche Code nicht korrekt ausgeführt werden, da die Datei nicht den Pfad des Programms, auf das es zugreift, kennt.

    Code in der Batch (plink.bat):

    Quellcode

    1. plink -v -load Serverkonfiguration -pw xxxxxxxxx


    Da die Batch-Datei aus dem selben Ordner wie "plink" gestartet wird, kann sie ausgeführt werden. Sobald sie per Shell in Vb ausgeführt wird, ist sie nicht mehr im selben Verzeichnis und findet daher nicht mehr das Programm.

    -Frage 1: (Wenn diese Methode funktioniert, kann ich Methode 2 weglassen)

    Ist es möglich den Code aus der Batch in Visual Basic zu übernehmen, sodass ich die .bat-Datei weglassen kann?

    -Frage 2:

    Wenn ich die .bat-Datei nicht weglassen kann, ist es möglich sie im Hintergrund zu starten, sodass sie vom Benutzer nicht gesehen wird?

    -Frage 3:

    Wie lautet der Code um die gerade geöffnete Batch-Datei nach erfolgreichem öffnen beim Verlassen der Applikation wieder zu schließen?

    Ich bin für jede Hilfe dankbar, da ich mir jetzt schon seit mehreren Tagen den Kopf zerbreche, wie mein Verlangen zu realisieren ist.


    Edit:

    Lösung für die oben genannte Beschreibung.
    Der Code der Batch (.bat)-Datei muss ein wenig umgeändert werden

    VB2010-Code:

    Quellcode

    1. Process.Start("C:\Users\Jasper\Desktop\ElbeobstBassenfleth\ElbeobstBassenfleth\PuTTY\plink1.bat")


    Batch-Code:

    Quellcode

    1. call "C:\Program Files\PuTTY\plink.exe" -v -load Serverkonfiguration -pw xxxxxxxx


    Somit startet schonmal die Batch bei Applikation start!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „saw1989“ ()

    hast du jemals daran gedacht dir die help von plink durchzulesen?
    anscheinend nicht -.-

    Quellcode

    1. plink.exe -D 127.0.0.1:<localen port für socks proxy> <username>@<server ip> -P <sshd port> [-i "falls du mit privat key etc arbeitest hier den pfad rein und die eckigen klammern weg"] -pw <dein pw für den server>


    nebenbei ist das ne total doofe idee! :cursing:
    UND schau dich mal im .Net framework um (parameter und so)!
    es gibt sogar eine ssh lib für .Net

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „slice“ ()