Переключить пользователя в root с помощью SSH.NET

Я использую SSH.NET для получения информации о внешнем накопителе на магнитной ленте. Подключение и выполнение некоторых основных команд прекрасно работает для меня:

ConnectionInfo connNfo = new ConnectionInfo("10.12.2.97", 22, "loginuser",
new AuthenticationMethod[]
{
// Password based Authentication
new PasswordAuthenticationMethod("loginuser","password")
}
);

using (var client = new SshClient(connNfo))
{
    client.Connect();

    //This command works fine
    using (var cmd = client.CreateCommand("ls"))
    {
        string result = cmd.Execute();
    }
}

Но теперь мне нужно переключиться на пользователя root для выполнения расширенных команд, которые мне нужны. Первоначально вход в систему от имени пользователя root невозможен из-за ограничений безопасности. Ссылаясь на этот пост Как запускать команды с помощью sudo и вводить пароль с помощью ssh .net C# Я пробовал этот блок кода:

using (var cmd = ssh.RunCommand("echo 'rootpassword' | sudo -u root -S fsstate"))
{
if (cmd.ExitStatus == 0)
    Console.WriteLine(cmd.Result);
else
    Console.WriteLine(cmd.Error);
}

Но тогда я всегда получаю это сообщение об ошибке:

sudo: неизвестный пользователь: root
sudo: невозможно инициализировать плагин политики

Обновление 1: рабочие команды PuTTY

Что я здесь не так делаю?

0 ответов

Другие вопросы по тегам