.NET SSH pbrun su

Hen*_*o12 8 .net asp.net ssh ssh.net

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

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

jlv*_*ero 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();
            }

        }


    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述