Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: P4nd3m0n1um en 26 Abril 2016, 16:17 pm



Título: Conexión con SSH con SSH-KEY Automatica
Publicado por: P4nd3m0n1um en 26 Abril 2016, 16:17 pm
Muy buenas foro, estoy intentando conectarme a un server con ssh, trabajando en visual basic 2015, probe con la DLL que se llama SSH.NET https://www.nuget.org/packages/SSH.NET/2014.4.6-beta2 (https://www.nuget.org/packages/SSH.NET/2014.4.6-beta2), funciona se conecta y todo y puedo obtener información del dispositivo, pero cuando envió un comando por ejemplo para editar un archivo y guardarlo (sed), nada no me da respuesta alguna, envió un reboot y obtengo que funciona el comando, por ende la conexión esta bien y se pueden enviar simples comandos pero nada elaborado, por ende busque mas opciones, probé con plink.exe y tengo el problema de la ssh-key y por mas que envio el comando "Echo Y | plink.exe " funciona la primera vez, después se cuelga. Probé cambien con WinSCP, nada.

Si alguien tiene una data de como hacerlo se los agradecería.



En el caso de SSH.NET el código es:

Código
  1.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.        Me.Cursor = Cursors.WaitCursor
  3.        'Create the objects needed to make the connection'
  4.        Dim sshConnectionInfo As New Renci.SshNet.PasswordConnectionInfo(SERVER, USER, PASS)
  5.        Dim sshClient As New Renci.SshNet.SshClient(sshConnectionInfo)
  6.  
  7.        'Need to hold the command'
  8.        Dim cmd As Renci.SshNet.SshCommand
  9.  
  10.        Using sshClient
  11.            'connect to the server'
  12.            sshClient.Connect()
  13.  
  14.            If sshClient.IsConnected Then
  15.  
  16.                'si esta conectado
  17.                'Run the command'
  18.  
  19.                cmd = sshClient.RunCommand("y")
  20.  
  21.                Threading.Thread.Sleep(2000)
  22.  
  23.                cmd = sshClient.RunCommand("sed -i 's/VARS=.*/VARS=12/g' /tmp/dataconf.cfg #")
  24.  
  25.                Threading.Thread.Sleep(2000)
  26.  
  27.                cmd = sshClient.RunCommand("save #")
  28.  
  29.                Threading.Thread.Sleep(2000)
  30.  
  31.                cmd = sshClient.RunCommand("reboot #")
  32.  
  33.                Me.Cursor = Cursors.Default
  34.  
  35.            Else
  36.                'NO ESTA CONECTADO
  37.            End If
  38.        End Using
  39.    End Sub

Se que el comando reboot funciona, los anteriores no se ven cambios.