首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用libssh模块进行双重认证?

如何使用libssh模块进行双重认证?
EN

Stack Overflow用户
提问于 2015-07-29 18:03:39
回答 1查看 56关注 0票数 0

我的SSH服务器使用双重身份验证。我不知道它是如何实现的。但它最初要求输入密码,然后再次要求输入另一个密码才能登录到不同于通常控制的单独控制台。

我的代码类似于文档中显示的示例代码,

代码语言:javascript
运行
复制
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <libssh/libssh.h>


int main(int argc, char * argv[])
{
    ssh_session my_ssh_session = ssh_new();
    int rc;
    char * password;
    char * username = "admin";
    // Check if ssh session exists.
    if(my_ssh_session == NULL)    
    {
        exit(-1);
    }

    ssh_options_set(my_ssh_session, SSH_OPTIONS_HOST, "x.x.x.x");

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

    password = getpass("Password: ");
    rc = ssh_userauth_password(my_ssh_session, username, password);
    if (rc != SSH_AUTH_SUCCESS)
    {
        fprintf(stderr, "ERROR Authenticating: %s.\n", ssh_get_error(my_ssh_session));
        ssh_disconnect(my_ssh_session);
        ssh_free(my_ssh_session);
    }
    else
    {
        printf("Authentication Successful.\n");
    }

    ssh_free(my_ssh_session);
}

如何在其中实现双重身份验证?你能帮帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2015-07-29 21:30:56

你有什么版本的libssh

“版本0.5.1和更高版本在处理SSH_MSG_NEWKEYS和SSH_MSG_KEXDH_REPLY包时存在逻辑错误。检测到的错误未将会话正确设置为错误状态,并进一步处理数据包,从而导致null指针取消引用。这是初始密钥交换之后的数据包,不需要身份验证。”

参考libssh

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31697261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档