Search code examples
c#sshmonomonodevelopssh.net

C# SSH Connection


I'm trying to run SSH commands as part of a C# app. My code is as follows:

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());
            }

         }
    }
}

From what I've read about SSH.NET, this should output the result of the command which I believe should be 'test'. However, when I run the program, the output I get is:

Renci.SshNet.SshCommand

Press any key to continue...

I don't understand why I'm getting this output (regardless of the command) and any input would be greatly appreciated.

Thanks,

Jake


Solution

  • Use output.Result instead of 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);
                }
            }
        }
    }