@Sohi2212

Как реализовать вход ssh с ключом через SSH.NET C#?

Всем привет. Недавно начал писать программу для работы столкнулся с проблемой при её исполнении. Я сам программист достаточно слабый и в основном пользовался интернетом и другими ресурсами. Суть программы заключается в том что она должна по SSH подключаться к сетевому коммутатору и выполнять определенные команды. Но в нашей сети есть большое кол-во коммутаторов которые используют старую версию SSH клиента, в следствии чего при исполнении команды ssh username@host выдает ошибку Unable to negotiate with 172.18.54.214 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1, нашел решение этой проблемы в добавлении ключ(а/ей) -o KexAlgorithms=diffie-hellman-group1-sha1 -o Ciphers=aes256-cbc, но не знаю как этот ключ реализовать в коде программы. Обновить коммутаторы так быстро не получиться, т.к их кол-во маленькое и вот ищу третий день какое-то решение на просторах...

Сам код:
using System.Data;
using System.Text.RegularExpressions;
using Renci.SshNet; // для ссш подключения
using System.Threading;
using System.Security.Cryptography.X509Certificates;
using System.ComponentModel.Design; // Для установки задержок между команды

class Program  
{
    private static SshClient client;

    static void Main(string[] args)
    {
        Console.WriteLine("Введите IP адрес: ");
        string host = Console.ReadLine();

        Console.WriteLine("Введите password");
        string password = Console.ReadLine();
        string modelSwitch; 
        client = new SshClient(host, "***", password);
        Console.WriteLine("1.D-Link");
        Console.WriteLine("2.Eltex");
        Console.Write("Выберите модель коммутатора:");
        modelSwitch = Console.ReadLine();

        try
        {
            client.Connect();
            Console.WriteLine("Подключение установлено. Нажмите Enter чтоб продолжить...");

            // Основной цикл для ввода команд
            while (true)
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ответы на вопрос 2
@d-stream
Готовые решения - не подаю, но...
У SshClient больше одного конструктора, и в том числе есть и конструктор с указанием источника приватных ключей

ну и поиск прям копипастой вопроса притаскивает в первой пятёрке на примеры
Ответ написан
@Sohi2212 Автор вопроса
Мне нужно не сделать авторизацию по ссш с использованием приватного ключа, а мне нужно чтоб команда для подключения у этого метода выглядела следующим образом: ssh -o KexAlgorithms=diffie-hellman-group1-sha1 -o Ciphers=aes256-cbc username@host
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы