SSH Connenction Mit Private Key

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von Wolfman.

    SSH Connenction Mit Private Key

    Guten Abend,

    ich versuche eine SSh connection mit einem Private key zu erstellen, jedoch funktioniert das nicht so ganz.
    Mein bisheriger Source:

    VB.NET-Quellcode

    1. Dim privateKey As New SshPrivateKey("my_key.ppk", "key_password")
    2. privateKey.Save("mykey.pri", "key_password", SshPrivateKeyFormat.OpenSsh)
    3. sftp.Login(username, privateKey)


    Dieser Source funkioniert so noch nicht ganz. Ich denke mir fehlt die libary(.dll) dafür.
    Hab mir eine dll dafür schon gedownloadet, bin aber immer noch am räzeln wie man diese einbindet:(

    Wär cool wenn mir jemand dabei helfen könnte.


    Mfg Hr4rjuku
    Der Quellcode scheint von hier zu stammen.

    Hast du diese Lib? Ist das Problem nur, wie du sie einbindest?
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Wenn du in Visual Studio bist, hast du zwei Möglichkeiten, dass zu erreichen:

    Projekt > Verweis hinzufügen > Entsprechende Bibliotheken suchen
    oder
    über den Projektmappen-Explorer: das entsprechende Projekt anwählen und Rechtsklick > Verweis hinzufügen
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    du musst in der listen-ansicht mit rechts auf dein projekt(namen) klicken und dann verweis hinzufügen --> reiter durchsuchen unddu hast sie ;)


    PS: in deiner Form1 ua. Klasse muss ÜBER(!!!!) "Public Class Form1" geschrieben werden: "Imports <DLL-NAME>" (<DLL-NAME> durch den dllnamen ersetzen(die <> kannste löschen ;))

    EDIT:// mist zu langsam :D
    Danke für die schneller Antworten.

    Ich habe die Dll eingebunden und diese funktioniert auch perfekt, jedoch connected er nicht auf meinen server.

    VB.NET-Quellcode

    1. Dim keyfile As New PrivateKeyFile(pfad, "keyfilepassword")
    2. Dim Client = New SshClient("host ip", 22, "root", keyfile)
    3. Client.Connect()
    4. Dim command = Client.RunCommand("uname -a")
    5. MsgBox(command)
    6. Client.Disconnect()


    Im Debugmodus hängt es bei :

    VB.NET-Quellcode

    1. Dim keyfile As New PrivateKeyFile(pfad, "keyfilepassword")





    Mfg Hr4rjuku

    Hr4rjuku schrieb:

    Im Debugmodus hängt es bei :
    Im Beispiel scheint es so zu funktionieren.
    // loading a private key (works for all formats)
    var privateKey = new SshPrivateKey("my_key.ppk", "key_password");
    (Nicht schlimm dass er hier C# ist)

    Welche Fehlermeldung bekommst du denn ?
    Was steht in "pfad" ?
    Was steht in pfad:

    VB.NET-Quellcode

    1. OpenFileDialog1.ShowDialog()
    2. txt_privatekey.Text = OpenFileDialog1.FileName
    3. pfad = OpenFileDialog1.FileName


    Fehlermeldung:

    VB.NET-Quellcode

    1. Invalid private key file.



    Danke für deine Hilfe


    Mfg Hr4rjuku

    Hr4rjuku schrieb:

    Was steht in pfad:
    Also erstmal würde ich OpfenFileDialoge immer so aufrufen. Da kann dann auch nichts schiefgehen. Desweiteren hast du mehr Platz im Designer.

    VB.NET-Quellcode

    1. Using ofd As New OpenFileDialog()
    2. ofd.Filter = "PPK-File|*.ppk"
    3. If ofd.ShowDialog() = Windows.Forms.DialogResult.OK Then
    4. 'MessageBox.Show(ofd.FileName)
    5. End If
    6. End Using


    Ich kenn' die .dll leider nicht, aber normalerweise sollte das so klappen. Bist du dir sicher, dass deine Datei kompatibel ist ? Die Fehlermeldung sagt nämlich dass das "KeyFile" ungültig sei.
    Dabei bin ich mir nicht sicher:(

    Es wird auch höchstwahrscheinlich an dem Privat-key liegen.
    Ich benutze die Private-key file, mit der ich auch über die console auf meinen server connecte.

    Danke für deine Hilfe

    ##Edit: Bekomme den Fehler irgendwie nicht weg. Hat noch jemand irgendwelche Ideen, die mir helfen könnten


    Mfg Hr4rjuku

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

    Hi zusammen, hab den thread durch Zufall per Google gefunden, ich habe momentan etwas ähnliches vor um einen Server auf meinen root bei bedarf zu stoppen und wieder zu starten ohne mich erst per putty einloggen zu müssen. Mich interessiert von welcher library.DLL oben die Rede ist und was die macht, außerdem wie ich dann per button den Start bzw. Stop Befehl übermitteln kann?

    Bedanke mich im Vorfeld für die Hilfe, Vielen Dank

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