这是我能找到的SSH.Net库最简单的sudo实现。但是,我无法让它正常工作。
using (var ssh = new SshClient("hostname", "username", "password"))
{
ssh.Connect();
var input = new MemoryStream();
var sr = new StreamWriter(input);
var output = Console.OpenStandardOutput();
var shell = ssh.CreateShell(input, output, output);
shell.Stopped += delegate
{
Console.WriteLine("\nDisconnected...");
};
shell.Start();
sr.WriteLine("sudo ls");
sr.Flush();
Thread.Sleep(1000 * 1);
sr.WriteLine("password");
sr.Flush();
Thread.Sleep(1000 * 100);
shell.Stop();
}
每次我都会收到以下错误:
上次登录时间:2015年1月14日15:51:46,来自我的电脑
公司的东西
SshNet.Logging Verbose: 1 : 从服务器接收消息:'ChannelDataMessage':'SSH_MSG_CHANNEL_DATA:#0'。 SshNet.Logging Verbose: 1 : 从服务器接收消息:'ChannelDataMessage':'SSH_MSG_CHANNEL_DATA:#0'。 [1;36m这是BASH [1;31m4.1 [1;36m- 在[1;31m:0.0[m 上显示
2015年1月14日15:55:50 CST SshNet.Logging Verbose: 1 : 从服务器接收消息:'ChannelDataMessage':'SSH_MSG_CHANNEL_DATA:#0'。 SshNet.Logging Verbose: 1 : 从服务器接收消息:'ChannelDataMessage':'SSH_MSG_CHANNEL_DATA:#0'。 -bash:And,:未找到命令 [0;34m用户名@主机[0;31m[15:55:50]>[0m