SSH.NET не поддерживает отправку ввода для команд, выполняемых с SshClient.RunCommand
(канал "exec").
Вы должны использовать канал "shell" (SshClient.CreateShell
* 1006).* или SshClient.CreateShellStream
).Обычно это не рекомендуется для автоматизации команд.Тем более с SSH.NET, который даже не позволяет отключить псевдотерминал для канала «shell».Это приносит много неприятных побочных эффектов, особенно с «умными» оболочками в Linux.Но с такими устройствами, как переключатели, это может быть терпимо.
Также, в частности, отправка управляющих последовательностей, таких как Ctrl + Y , более сложна для псевдотерминала.Но опять же, будем надеяться, что «оболочка» коммутатора достаточно глупа, чтобы просто принять чистый ASCII-код для Ctrl + Y , что составляет 25 = x19.
ShellStream shellStream = client.CreateShellStream(string.Empty, 0, 0, 0, 0, 0);
shellStream.Write("enable\n");
shellStream.Write("\u19");
while (true)
{
string s = shellStream.Read();
Console.Write(s);
}