libssh2-代理转发不起作用

libssh2-代理转发不起作用

我正在使用libssh2库在我的移动应用程序中进行 ssh 连接。这里我想使用Agent Forwarding支持。

我遵循了他们在此处示例中提供的相同程序LibSSH2 代理转发

我可以成功创建代理,但是当我尝试连接它时,libssh2_agent_connect(agent)它给出了错误-39 LIBSSH2_ERROR_BAD_USE

嗯,我正在使用检查同样的事情MAC OSX 终端运行良好。如有错误,请提出建议,

这就是我尝试成功连接的方法

struct libssh2_agent_publickey *identity, *prev_identity = NULL;
int rc;
agent = libssh2_agent_init(session);

if (!agent)
{
    fprintf(stderr, "Failure initializing ssh-agent support\n");
    rc = 1;
}

int temp=libssh2_agent_connect(agent);
if (temp)
{
    fprintf(stderr, "Failure connecting to ssh-agent\n");
    rc = 1;
}

这里有什么问题吗?请提出建议。

答案1

从代码中https://github.com/libssh2/libssh2/blob/master/src/agent.c

path = getenv("SSH_AUTH_SOCK");
if (!path)
    return _libssh2_error(agent->session, LIBSSH2_ERROR_BAD_USE,
                          "no auth sock variable");

显然,发生此错误是因为您没有正确设置指向代理套接字的环境变量。getenv("SSH_AUTH_SOCK")如果发生错误,请让您的代码打印值以确认这一点。

相关内容