Hallo,
ich habe ein kleines Problem. Der Code ist aus einem Beispielprojekt von DotNetSSH und funktioniert:
Die Ausgabe von der SSH Verbindung erscheint in der Ausgabe von dem VB Programm (puu.sh/hXuSv/b37bceda68.png). Wie kann ich jetzt die Ausgabe in ein String machen?
Mein Code:
zum Auslesen hab ich einfach sOut.ReadToEnd genommen.
Die ganze Klasse:
Spoiler anzeigen
Mein Fehler:
puu.sh/hXtwG/2fd02e0f97.png - System.ArgumentException ich versteh das nicht ...
Ich habe schon ein Thema in diesem Forum zu einer SSH Verbindung geschrieben, aber ich würde ganz gerne diese API nutzen, weil sie im Beispielprojekt besser funktioniert und weniger Fehler hat.
Ich hoffe, ihr könnt mir helfen
MfG Luca
ich habe ein kleines Problem. Der Code ist aus einem Beispielprojekt von DotNetSSH und funktioniert:
Die Ausgabe von der SSH Verbindung erscheint in der Ausgabe von dem VB Programm (puu.sh/hXuSv/b37bceda68.png). Wie kann ich jetzt die Ausgabe in ein String machen?
Mein Code:
zum Auslesen hab ich einfach sOut.ReadToEnd genommen.
Die ganze Klasse:
VB.NET-Quellcode
- Imports FSM.DotNetSSH.jsch
- Imports System.IO
- Imports System.Threading
- Public Class SSHConnection
- Inherits Connection
- Public Connected As Boolean = False
- Dim update As New Thread(AddressOf UpdateConsole)
- Event ConsoleUpdated(console As String)
- Dim jsch As New jsch()
- Dim session As Session
- Dim channel As Channel
- Dim sIn As StreamWriter
- Dim sOut As StreamReader
- Public Sub New(ip As String, port As Integer, user As User)
- Me.IP = ip
- Me.Port = port
- Me.User = user
- Me.typ = "SSH"
- update.IsBackground = True
- End Sub
- Public Function TestConnection() As Boolean
- Return False
- End Function
- Public Sub Connect()
- Try
- session = jsch.getSession(Me.User.Username, Me.IP, Me.Port)
- Dim ui As UserInfo = New SSH_UserInfo(Me.User.Password)
- session.setUserInfo(ui)
- session.connect()
- channel = session.openChannel("shell")
- sOut = New StreamReader(channel.getOutputStream)
- sIn = New StreamWriter(channel.getInputStream)
- channel.connect()
- 'update.Start()
- Connected = True
- Catch ex As Exception
- MsgBox("Fehler beim Verbinden: " + ex.Message)
- Connected = False
- End Try
- End Sub
- Private Sub UpdateConsole()
- RaiseEvent ConsoleUpdated(sOut.ReadToEnd)
- End Sub
- Public Sub Disconnect()
- Connected = False
- 'sIn.Close() : sIn = Nothing
- 'sOut.Close() : sOut = Nothing
- 'channel.disconnect() : channel = Nothing
- 'session.disconnect() : session = Nothing
- 'update.Abort() : update = Nothing
- End Sub
- Public Sub SendCommand(cmd As String)
- sIn.WriteLine(cmd)
- End Sub
- Public Class SSH_UserInfo
- 'Implements UIKeyboardInteractive
- Implements UserInfo
- Private _passwd As [String]
- 'Public Function promptKeyboardInteractive(destination As String, name As String, instruction As String, prompt As String(), echo As Boolean()) As String() Implements UIKeyboardInteractive.promptKeyboardInteractive
- ' Dim prmpt As String = If(prompt IsNot Nothing AndAlso prompt.Length > 0, prompt(0), "")
- ' _passwd = InputForm.GetUserInput(prmpt, True)
- ' Return New String() {_passwd}
- 'End Function
- Public Sub New(passwd As String)
- _passwd = passwd
- End Sub
- Public Function getPassword() As [String] Implements UserInfo.getPassword
- Return _passwd
- End Function
- Public Function promptYesNo(str As [String]) As Boolean Implements UserInfo.promptYesNo
- Dim result As MsgBoxResult = MsgBox(str, MsgBoxStyle.YesNo)
- If result = MsgBoxResult.Yes Then
- Return True
- ElseIf result = MsgBoxResult.No Then
- Return False
- End If
- Return False
- End Function
- Public Function getPassphrase() As [String] Implements UserInfo.getPassphrase
- Return Nothing
- End Function
- Public Function promptPassphrase(message As [String]) As Boolean Implements UserInfo.promptPassphrase
- Return True
- End Function
- Public Function promptPassword(message As [String]) As Boolean Implements UserInfo.promptPassword
- Return True
- End Function
- Public Sub showMessage(message As [String]) Implements UserInfo.showMessage
- MsgBox(message)
- End Sub
- End Class
- End Class
Mein Fehler:
puu.sh/hXtwG/2fd02e0f97.png - System.ArgumentException ich versteh das nicht ...
Ich habe schon ein Thema in diesem Forum zu einer SSH Verbindung geschrieben, aber ich würde ganz gerne diese API nutzen, weil sie im Beispielprojekt besser funktioniert und weniger Fehler hat.
Ich hoffe, ihr könnt mir helfen
MfG Luca
Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Luca“ ()