SSH-подключение к Raspberry Pi

#c# #ssh #nuget #libraries

#c# #ssh #nuget #библиотеки

Вопрос:

Я пишу код для подключения к Raspberries. У меня около 100 устройств. Некоторые из них находятся на Raspbian 8 (Jessie), некоторые 9 (Stretch) и некоторые 10 (Buster). Код должен иметь возможность подключаться и перезагружать устройство или отображать последнюю страницу chormium, на которой он был.

 SshClient sshclient = new SshClient(label2.Text, "pi", psw);
        try
        {
            sshclient.Connect();
            SshCommand sc = sshclient.CreateCommand("strings ~/.config/chromium/Default/'Current Session' | 'grep' -E '^https?://'");
            sc.Execute();
            string answer = sc.Resu<
            int index2 = answer.LastIndexOf("http");
            textBox1.Text = answer.Substring(index2);
        }
        catch
        {
            MessageBox.Show("Error");
        }
        sshclient.Disconnect();
  

Это часть кода, которая должна показывать мне последнюю посещенную страницу. Код работает отлично, команда работает нормально, проблема в том, что я могу подключиться таким образом только к устройствам с Raspbian 8 или 9. Устройства с Raspbian 10 показывают ошибку, которую я не могу подключить. Но когда я использую putty.exe я могу подключиться и даже выполнить команду.

Итак, давайте просто скажем, что в настройках Raspian 10 raspberries нет ничего плохого. Я пытался загрузить разные библиотеки NuGet — Neon.SSH.NET например (потому что самый загруженный SSH.NET был загружен 3 или 4 года назад), но Neon.SSH.NET , при загрузке покажите мне ошибки в коде. Он не знает SSHClient. Я попытался добавить его в using, но using этого не знает.

Кто-нибудь использовал Neon.SSH.NET ? Существуют ли специальные команды, о которых я не знаю? Или есть какая-нибудь лучшая библиотека, чем старая SSH.NET ? Странно, что я могу подключиться к 8 и 9, но не к 10 (что может putty). И нет, установка устройств версии 8 или 9-10 не является вариантом, на самом деле мне нужно обновить все устройства 8 и 9 в ближайшем будущем.

Комментарии:

1. Когда не удается подключиться, какое именно исключение вы получаете?

2. Привет, это {«Установленное соединение было прервано сервером».}. Я пытался внести некоторые изменения, предыдущее исключение было «… было прервано хостом «. Который, в значительной степени, должен быть таким же / похожим.

3. Проблема решена. Проблема была в старом SSH. Загружено бета-обновление — nuget.org/packages/SSH.NET/2020.0.0-beta1 и это работает.