我目前尝试在 Objective-C 中扩展 libssh2 Wrapper。
我正在尝试实现该libssh2_userauth_keyboard_interactive
方法。我的问题是响应回调。
我在网上找到了这个实现,它绕过了“真正的”交互性并使用实际密码来使身份验证成为可能:
int error = libssh2_userauth_keyboard_interactive(session, [username UTF8String], &kbdCallback);
static void kbdCallback (const char *name, int name_len, const char *instruction, int instruction_len, int num_prompts, const LIBSSH2_USERAUTH_KBDINT_PROMPT *prompts, LIBSSH2_USERAUTH_KBDINT_RESPONSE *responses, void **abstract)
{
responses[0].text = (char *)[password UTF8String]; // resp. (char *)[@"test" UTF8String]
responses[0].length = strlen([password UTF8String]); // resp. (char *)[@"test" UTF8String]
}
password
我的一个问题是在调用中访问实例变量static void
,我的另一个问题是当我尝试调用该方法时得到 SIGABRT(我使用固定字符串来测试它是否有效)。
有没有可能让它工作?
朱利安