SSH 客户端返回错误"Couldn't apply options"



连接到SSH服务器时收到"无法应用选项"。

当我检查库的源代码时,我在client.c中发现了以下代码其正在返回错误。

ret = ssh_options_apply(session);
if (ret < 0) {
    ssh_set_error(session, SSH_FATAL, "Couldn't apply options");
    leave_function();
    return SSH_ERROR;
}

有人能告诉我有什么可能导致这个错误吗?

使用ssh_options_set((不会设置任何选项。ssh_options_apply((执行健全性检查。

我也遇到了同样的问题。我不知道为什么,但当我在libssh教程中添加这个"可选"选项时,它就起了作用:

ssh_options_set(my_ssh_session, SSH_OPTIONS_USER, "random_username");

在您的主应用程序中设置主机名选项之前,请先执行此操作。

我一直在努力解决这个问题。libssh试图设置SSH_OPTIONS_SH_DIR选项,这基本上是写入known_hosts文件的路径,但它失败了。在libssh的早期版本中,默认情况下,路径类似于"C:\Users/your_user/",其中创建了".ssh"文件夹,其中包含"known_hosts"文件。在最新版本中,您需要自己指定此路径。此外,也不要忘记设置SSH_OPTIONS_USER。

ssh_options_set(sshSession, SSH_OPTIONS_SSH_DIR, "C://temp");
ssh_options_set(sshSession, SSH_OPTIONS_USER, "user");

希望这能有所帮助。