#include <cstdio>
#include <curl/curl.h>

int ssh_keycallback(CURL *easy,
                           const struct curl_khkey *knownkey,
                           const struct curl_khkey *foundkey,
                           enum curl_khmatch match,
                           void *clientp)
{
    printf("%s\n", foundkey->key);
    return CURLKHSTAT_FINE;
}

int main(int argc, char *argv[])
{
    CURL *curl;
    CURLcode res;

    curl_global_init(CURL_GLOBAL_DEFAULT);

    curl = curl_easy_init();
    if(curl) {
        curl_easy_setopt(curl,  CURLOPT_SSH_KNOWNHOSTS, "known_hosts");
        curl_easy_setopt(curl, CURLOPT_SSH_KEYFUNCTION, ssh_keycallback);
        curl_easy_setopt(curl, CURLOPT_URL, "sftp://user:user@192.168.56.10:/");

        res = curl_easy_perform(curl);

        if(CURLE_OK != res)
            fprintf(stderr, "curl_easy_perform() failed: %s\n",
                    curl_easy_strerror(res));

        curl_easy_cleanup(curl);
    }

    curl_global_cleanup();
    return 0;
}
