Выполнение команды SshNet

1

Я пытаюсь создать SSH-клиент, используя С#. Я использую библиотеку Renci.SshNet. У меня возникают проблемы с отправкой команды и получением соответствующего ответа от сервера.

То, как я его тестировал, - это передать команду ls, а затем команду cd.., а затем команду ls еще раз - посмотреть, выполняется ли команда cd... Однако нет никакой разницы между первой командой ls и второй командой ls. Я не совсем уверен, что я делаю неправильно. Возможно, я использую неправильный тип Ssh. Я предоставил код и вывод, который я получаю. Я также добавил результат, который я ожидаю.

        SshClient ssh = new SshClient("apk0rhel01", "dwaseem", "Da_011235813");
        ssh.Connect();


        while (true)
        {
            string command = Console.ReadLine();

            if (command == "exit")
            {
                break;
            }

            var result = ssh.RunCommand(command);

            if (result.Result.Length < 10)
                continue;

            Console.Write(result.Result);
        }
        ssh.Disconnect();

Выход: Изображение 174551

Ожидаемый результат: Изображение 174551

Теги:
ssh

1 ответ

1
Лучший ответ

Ответ на этот вопрос тот же, что и вопрос для вашего вопроса, используя библиотеку Tamir SSH - вы используете класс, предназначенный для выполнения отдельных команд, который регистрируется и выполняет команду каждый раз. Вы не сможете использовать это как оболочку.

Если вы хотите реализовать интерактивные команды, вам понадобится что-то, что держит соединение открытым, и вам нужно будет заниматься разработкой, когда команда закончится (что обычно делается путем поиска шаблона подсказки). Класс Shell предоставляет методы для решения этого вопроса - вы можете найти примеры его использования на своем веб-сайте.

  • 0
    Ричард, спасибо, что помог мне. Я пытался использовать класс Shell, но у меня возникли некоторые проблемы с ним. Я отправил еще один вопрос: stackoverflow.com/q/29414343/2970916

Ещё вопросы

Сообщество Overcoder
Наверх
Меню