C#SSHStream实现提供奇怪的输出
在创建使用SSH实现的c#程序时,我能够连接、接收数据/执行命令并断开连接(使用SSH.net()和SharpSSH())。在这两种实现中,输出都相当奇怪。与我使用PuTTY(例如PuTTY)进行连接时提供的输出不同,这些消息是: 对于命令“ls”: lsC#SSHStream实现提供奇怪的输出,c#,regex,encoding,ssh,C#,Regex,Encoding,Ssh,在创建使用SSH实现的c#程序时,我能够连接、接收数据/执行命令并断开连接(使用SSH.net()和SharpSSH())。在这两种实现中,输出都相当奇怪。与我使用PuTTY(例如PuTTY)进行连接时提供的输出不同,这些消息是: 对于命令“ls”: ls jpg您奇怪的输出看起来像bash颜色代码(这里有些看起来不是详尽的文档)。无论您是想正确地显示它们,还是想摆脱它们,都应该尝试正确地解释它们!这就是问题所在,现在我正在寻找解决方案。让连接返回代码的实验不起作用,所以现在我正在搜索一个正则表
jpg您奇怪的输出看起来像bash颜色代码(这里有些看起来不是详尽的文档)。无论您是想正确地显示它们,还是想摆脱它们,都应该尝试正确地解释它们!这就是问题所在,现在我正在寻找解决方案。让连接返回代码的实验不起作用,所以现在我正在搜索一个正则表达式来删除它们。
SshShell ssh = new SshShell("host", "username", "password");
//This statement must be prior to connecting
ssh.RedirectToConsole();
Console.Write("Connecting...");
ssh.Connect();
Console.WriteLine("OK");
Console.Write("Enter a pattern to expect in response [e.g. '#', '$', C:\\\\.*>, etc...]: ");
string pattern = Console.ReadLine();
ssh.ExpectPattern = pattern;
ssh.RemoveTerminalEmulationCharacters = true;
Console.WriteLine();
Console.WriteLine(ssh.Expect(pattern));
while (ssh.ShellOpened)
{
Console.WriteLine();
Console.Write("Enter some data to write ['Enter' to cancel]: ");
string data = Console.ReadLine();
if (data == "") break;
ssh.WriteLine(data);
ssh.RemoveTerminalEmulationCharacters = true;
string output = ssh.Expect(pattern);
Console.WriteLine(output);
}
Console.Write("Disconnecting...");
ssh.Close();
Console.WriteLine("OK");