libssh2 - Agent Forwarding not working

Я использую libssh2 library to ssh connections in my mobile application. Здесь я хочу использовать Agent Forwarding служба поддержки.

I have followed same procedure as they have provided in example here LibSSH2 Agent Forwarding.

I am able to create agent successfully but when I try to connect it with 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") в случае ошибки, чтобы подтвердить это.

Другие вопросы по тегам