gpt4 book ai didi

c - libssh:在没有加密上下文的情况下调用 ssh_is_host_known

转载 作者:太空宇宙 更新时间:2023-11-04 04:27:11 26 4
gpt4 key购买 nike

我试图使用 libssh 0.7.0 将 SSH 通信包含到我的程序中。我按照教程创建了到远程计算机的简单连接,但遇到了这个错误:

[2016/10/26 16:38:56.280261, 1] ssh_is_server_known:  ssh_is_host_known called without cryptographic context

在搜索库的源代码及其文档后,我没有发现任何与这种“缺乏”密码上下文相关的内容可以帮助解决问题。

这是我要执行的代码(它是函数的一部分;IP 地址和用户不是实际的):

ssh_session session;
int verbosity = SSH_LOG_PROTOCOL;
int port = 22;
int state;

ssh_init();

session = ssh_new();
if (session == NULL){
printf("Failed to create SSH session\n"); return NULL;
}

ssh_options_set(session, SSH_OPTIONS_HOST, "111.111.111.111");
ssh_options_set(session, SSH_OPTIONS_USER, "user");
ssh_options_set(session, SSH_OPTIONS_LOG_VERBOSITY, &verbosity);
ssh_options_set(session, SSH_OPTIONS_PORT, &port);

state = ssh_is_server_known(session);
if(state != SSH_SERVER_KNOWN_OK){
printf("SSH Server is not known\n");
}

(我试图在不调用 ssh_init() 的情况下执行此部分,但两种情况都发生了错误)。

最佳答案

根据tour (tutorial) on official page ,您需要先连接到服务器,然后再验证服务器是否已知(服务器需要向您发送其主机 key )。因此加一个

rc = ssh_connect(my_ssh_session);
if (rc != SSH_OK)
{
fprintf(stderr, "Error connecting to localhost: %s\n",
ssh_get_error(my_ssh_session));
exit(-1);
}

在检查 ssh_is_server_known() 之前。

关于c - libssh:在没有加密上下文的情况下调用 ssh_is_host_known,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40267037/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com