我正在使用 SSH.NET 从我的 .net 应用程序连接到 Linux 服务器。我执行的每个命令都按预期完成,但 pbrun su - myaccount 除外。
在调试时,当执行 pbrun su - myaccount 命令时,调试器中的箭头消失,并且控制权永远不会返回到 Visual Studio,因此需要我手动停止调试应用程序。
最佳答案
如果问题是 pbrun 要求标准输入中的某些内容(密码、原因等),您可以创建一个带有由您控制的流的 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();
}
}
}
}
关于asp.net - .NET SSH pbrun su,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38128713/