2

Я использую библиотеку 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 ответ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") в случае ошибки, чтобы подтвердить это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .