当前位置: 首页 > 知识库问答 >
问题:

“kex错误:在与sshlib连接时没有找到algos ffie-hellman-group1-sha1-in list之一”

狄元魁
2023-03-14

我正在Windows中实现SFTP C来传输一些文件。我已经用这个下载并附加了所有的库(libssh 0.5.0)。

我找到了来自这个作者的一些代码:德斯菲博伊。但它显示错误为:

错误:Kex错误:未在列表curve25519-sha256@libssh.org.ecdh-sha2-nistp256、ecdh-sha2-nistp384、ecdh-sha2-nistp521、addie-hellman-group-exex-sha256和kex algos中找到algos之一。无法连接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,我添加到我的项目中,如下所述

共有1个答案

申自明
2023-03-14

libssh 0.5已有7年历史。因此,它不支持许多最新服务器所需的现代算法。更不用说它可能存在许多安全问题。

使用最新版本的libssh。

 类似资料:
  • 我正在Windows中实现SFTPC++来传输一些文件。我已经下载并附加了所有的库(libssh0.5.0)。

  • 我正在使用支持文件传输的SFTP协议的硬件设备。为此,我在AWS传输系列中创建了SFTP服务器。 我面临的问题是,该设备不支持AWS transfer系列支持的任何加密算法 因此,我得到以下错误 错误KEX_FAILURE Message=“未找到匹配的密钥交换方法”KEX=diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1

  • 我们一直在使用jenkins和github构建应用程序。从最近两天开始,jenkins无法从git中获取代码,在控制台中我发现错误是“no kex alg”。有人知道如何修复这个错误吗?如果能尽早提供帮助,我们将不胜感激。 错误:获取远程存储库“origin”时出错 hudson.plugins.git。GitException:无法从获取git@github.houston.entsvcs.ne

  • 问题内容: 连接elasticsearch连接时出现此问题。 问题答案: 我知道这个问题已经很久了,但是我想分享一下如何解决这个问题。 如果您在本地使用elasticsearch 您必须做的第一件事是在计算机上运行elasticsearch。 因为上面的消息表明您不在本地运行elasticsearch。 因此,请访问链接并按照指示进行操作。 Docker环境 这里变得更加棘手。 首先,请按照此处的

  • 我读到的几乎所有答案都说我的数据库名或pw是错的,但我100%确定不是。以下是http错误描述:javax . servlet . servlet异常:javax . servlet . JSP . JSP异常:无法获取连接,数据源无效:“java.sql.SQLException:拒绝用户' root'@'localhost '(使用密码:YES)的访问” 如果有人能帮助我,我会很棒。仍然是编程

  • 从控制器返回Html页面时获取此错误 org.springframework.web.servlet.页未找到noHandler已找到警告:没有找到HTTP请求与URI[/SpringMVCDemo/WEB-INF/response.html]在DispatcherServlet名称调度器映射 放在哪里response.html? 这是我的密码