2016-01-23 5 views
2

Я пытаюсь запустить SSH-команды как часть приложения C#. Мой код выглядит следующим образом:C# SSH Connection

using System; 
using Renci.SshNet; 

namespace SSHconsole 
{ 
    class MainClass 
    { 

     public static void Main (string[] args) 
     { 
      //Connection information 
      string user = "sshuser"; 
      string pass = "********"; 
      string host = "127.0.0.1"; 

      //Set up the SSH connection 
      using (var client = new SshClient (host, user, pass)) 
      { 

       //Start the connection 
       client.Connect(); 
       var output = client.RunCommand ("echo test"); 
       client.Disconnect(); 
       Console.WriteLine (output.ToString()); 
      } 

     } 
    } 
} 

Из того, что я читал о SSH.NET, это должно вывести результат команды, которые я считаю, должен быть «тест». Тем не менее, когда я запускаю программу, выход я получаю:

Renci.SshNet.SshCommand 

Press any key to continue... 

Я не понимаю, почему я получаю этот выход (независимо от команды), и любой вклад будет весьма признателен.

Спасибо,

Jake

ответ

2

Использование output.Result вместо output.ToString().

using System; 
using Renci.SshNet; 

namespace SSHconsole 
{ 
    class MainClass 
    { 
     public static void Main (string[] args) 
     { 
      //Connection information 
      string user = "sshuser"; 
      string pass = "********"; 
      string host = "127.0.0.1"; 

      //Set up the SSH connection 
      using (var client = new SshClient(host, user, pass)) 
      { 
       //Start the connection 
       client.Connect(); 
       var output = client.RunCommand("echo test"); 
       client.Disconnect(); 
       Console.WriteLine(output.Result); 
      } 
     } 
    } 
} 
+0

Спасибо, отлично работал. Я попытался использовать .Result, но использовал его неправильно. –

+0

Отметить как ответ пожалуйста :) –

+0

Только что закончил ... Я ждал нужного времени, чтобы посчитать :) –