libssh bind_accept error : Could not create BIO

libssh bind_accept error : Could not create BIO

我正在构建一个软件的团队,该软件结合了 SSH 和客户端-服务器架构。我正在编写 SSH 服务器,在远程服务器计算机上部署之前在本地机器上进行测试,使用 libssh C API。服务器构建和链接正常,但在 运行 上,接受函数出现无法创建 BIO 错误。下面是我的服务器代码

unsigned int port = xxxx;
int log_func = SSH_LOG_PROTOCOL;
int rc;
static const char * dsakey = "rservd_dsa_file_key";
static const char * rsakey = "rservd_rsa_file_key";


ssh_init();
ssh_bind sshbind = ssh_bind_new();
ssh_session session = ssh_new();

const char * hostname = "127.0.0.1";


ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_BINDADDR, hostname);
ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_BINDPORT, &port);
ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_DSAKEY, dsakey);
ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_LOG_VERBOSITY, &log_func);
ssh_bind_options_set(sshbind, SSH_BIND_OPTIONS_RSAKEY, rsakey);


if(ssh_bind_listen(sshbind)<0)
{
    fprintf(stderr, "failed to listen at port %s\n", ssh_get_error(sshbind));
    exit(-1);
}


rc = ssh_bind_accept(sshbind, session);

if(rc == SSH_ERROR)
{
    fprintf(stderr, "Error in accepting a connection : %s\n", ssh_get_error(sshbind));
    exit(-1);
}

ssh_bind_free(sshbind);
ssh_free(session);

谷歌搜索后,我发现 BIO 与 SSL 有关,但我不太确定。 libssh 社区没有那么大,所以例子很少,而且不像我希望的那样清晰。那么导致此错误的原因可能是什么,我该如何解决呢?仅供参考这是 libssh 0.5.0

我通过升级到 libssh 0.6.3 来修复它,连接工作正常