3

我正在尝试将 SSH 命令作为 C# 应用程序的一部分运行。我的代码如下:

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...

我不明白为什么我会得到这个输出(不管命令如何),任何输入都将不胜感激。

谢谢,

杰克

4

1 回答 1

7

使用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);
            }
        }
    }
}
于 2016-01-23T19:57:01.347 回答