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