8

我正在使用 SSH.NET 从我的 .net 应用程序连接到 linux 服务器。我执行的每个命令都按预期完成,但 pbrun su - myaccount 除外。

调试时,执行 pbrun su - myaccount 命令时,调试器中的箭头消失,控制权永远不会返回到 Visual Studio,因此需要我手动停止调试应用程序。

4

1 回答 1

1

如果问题是 pbrun 在 stdin 中询问某些内容(密码、原因等),您可以创建一个带有您控制的流的 shell 并在其中写入。

简单的例子:

using System;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var connectionInfo = new Renci.SshNet.PasswordConnectionInfo("ancardia.us.to", "adom", "adom");
            var ssh = new Renci.SshNet.SshClient(connectionInfo);

            ssh.Connect();

           var shell = ssh.CreateShell(Console.OpenStandardInput(), Console.OpenStandardOutput(), Console.OpenStandardOutput());
           shell.Start();

       while (true) {
            Console.Read();
            }

        }


    }
}

在此处输入图像描述

于 2016-07-08T10:19:43.273 回答