«Ошибка Kex: не найдено ни одного из алгоритмов diffie-hellman-group1-sha1- в списке» при соединении с sshlib - PullRequest
0 голосов
/ 08 сентября 2018

Я реализую SFTP C ++ в Windows для передачи некоторых файлов. Я скачал и прикрепил все библиотеки для этого (libssh 0.5.0) по , используя .

Я нашел код от этого автора: Desphilboy . Но он показывает ошибки как:

Ошибка: ошибка Kex: не найдено ни одного из алгоритмов diffie-hellman-group1-sha1- в кривой списка 25519-sha256 @ libssh.org.ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group14-sha1 для кекс-альго. Не удалось подключиться к сеансу ssh. 1 Ошибка: запись пакета: ошибка в сокете (или соединение закрыто): ошибки нет.

Я хочу подключиться к определенному IP-адресу, используя эти имя пользователя и пароль. Любое предложение для этого?

Ниже мой основной класс

#include "ssh.h"

int main()
{
    pSFTPConnector  sshc = new  SFTPConnector(L".\\", L"147.13.5.123", 22, L"John", L"password");  // change the hostname , port , username, password to your sftp server, your credentials

    FILE *nullfile = fopen("null", "w");
    sshc->setLogFile(nullfile);
    sshc->setVerbosity(1);  // you can change the verbosity as appropriate for you

    int i = sshc->InitSession();
    if (i != E_OK) wprintf(L"%s", sshc->errstring.c_str());

    i = sshc->ConnectSession();
    if (i != E_OK) wprintf(L"%s", sshc->errstring.c_str());

    i = sshc->InitSFTP();
    if (i != E_OK) wprintf(L"%s", sshc->errstring.c_str());

    i = sshc->SFTPrename("renamed_myfile.txt", "myfile.txt");  //change these file names
    i = sshc->Makedir("sftpdir");
    i = sshc->testUploadFile("myfile2.txt", "1234567890testfile");


    i = sshc->SFTPreget("c:\\testdir\\reget_downloaded_CAR_HIRE_FINAL.jpg", "CAR_HIRE_FINAL.jpg", 64 * 1024);
    sshc->setBlockTransferDelay(1);

    i = sshc->GetSessionStatus();
    i = sshc->SFTPreput("c:\\testdir\\CentOS-6.5-x86_64-bin-DVD1.iso", "reput_CentOS-6.5-x86_64-bin-DVD1.iso", 64 * 1024);
    i = sshc->SFTPreput("c:\\testdir\\Reget_CentOS-6.5-x86_64-bin-DVD1.iso", "reput2_CentOS-6.5-x86_64-bin-DVD1.iso", 64 * 1024);

    if (i != E_OK) wprintf(L"%s", sshc->errstring.c_str());
    delete sshc;
    getchar();
    return 0;
}

Заголовочный файл - ssh.h, который я добавил в свой проект, как описано в this

1 Ответ

0 голосов
/ 10 сентября 2018

libssh 0.5 - 7 лет. Следовательно, он не поддерживает современные алгоритмы, которые нужны многим современным серверам. Не говоря уже о том, что он, вероятно, имеет множество проблем с безопасностью.

Используйте последнюю версию libssh.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...