Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / libssh2 и LIBSSH2_ERROR_SOCKET_SEND / 17 сообщений из 17, страница 1 из 1
27.03.2019, 13:25
    #39792263
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
Подскажите что делаю не так!?
Вроде все по примеру, а не выходит каменный цветок на libssh2_userauth_publickey_fromfile выпадает с ошибкой -7
при этом libssh2_userauth_list возвращает publickey
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
    int sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (sock == -1)
    {
        cerr << "Ошибка открытия сокета\n";
        return false;
    }

    struct sockaddr_in sin;
    sin.sin_family = AF_INET;
    sin.sin_port = htons(22);
    sin.sin_addr.s_addr = inet_addr("ip удаленного сервера");
    if(sin.sin_addr.s_addr == INADDR_NONE)
    {
        cerr << "Невервый адрес\n";
        return false;
    }

    if(connect(sock, (struct sockaddr*)(&sin), sizeof(struct sockaddr_in)) != 0)
    {
        cerr << "Ошибка соединения с сокетом\n";
        return false;
    }

    LIBSSH2_SESSION * session = libssh2_session_init();
    if (!session)
    {
        cerr << "Ошибка инициализации SSH сессии\n";
        return false;
    }

    int ret;
    if (ret = libssh2_session_startup(session, sock))
    {
        cerr << "Ошибка запуска SSH сессии " << ret << endl;
        return false;
    }

    cout << libssh2_userauth_list(session, "wolverin", strlen("wolverin")) << endl;

    if(ret = libssh2_userauth_publickey_fromfile(session, "wolverin", "/home/wolverin/.ssh/id_rsa.pub", "/home/wolverin/.ssh/id_rsa", ""))
    {
        cerr << "Ошибка аутентификации " << ret << endl;
        libssh2_session_disconnect(session, "Client disconnecting normally WTF");
        libssh2_session_free(session);
        close(sock);
        return false;
    }

    LIBSSH2_CHANNEL * channel = libssh2_channel_direct_tcpip_ex(session, "ip удаленного сервера", 5550, "127.0.0.1", 5552);
    if (!channel)
    {
        cerr << "Ошибка создания тунеля\n";
        libssh2_session_disconnect(session, "Client disconnecting normally");
        libssh2_session_free(session);
        close(sock);
        return false;
    }
...
Рейтинг: 0 / 0
27.03.2019, 13:50
    #39792308
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
wolverinlibssh2_userauth_publickey_fromfile выпадает с ошибкой -7

А что говорит документация об этом номере ошибки?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.03.2019, 13:51
    #39792310
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
Dimitry Sibiryakov,

судя по исходнику код соответствует LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket.
что вобщем то мне ни о чем не говорит
может нужно что то еще указывать перед соединением, параметры какие то
...
Рейтинг: 0 / 0
27.03.2019, 13:58
    #39792316
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
wolverinсудя по исходнику

Я сказал "документация". Это несколько другая вещь:
0 is returned if authentication succeeds. In case of error, -1 is returned, and
libssh2_session_last_error() will return one of the errorcodes below.

Errors
LIBSSH2_ERROR_ALLOC
LIBSSH2_ERROR_SOCKET_SEND
LIBSSH2_ERROR_PUBLICKEY_UNRECOGNIZED
LIBSSH2_ERROR_PUBLICKEY_UNVERIFIED
И, судя по ней, ты неправильно получаешь код ошибки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.03.2019, 13:58
    #39792318
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
wolverin,

А id_rsa с паролем или без?
...
Рейтинг: 0 / 0
27.03.2019, 13:59
    #39792319
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
Anatoly Moskovsky,

без пароля, так вроде проверил заходит по ключу штатно на удаленный
...
Рейтинг: 0 / 0
27.03.2019, 14:03
    #39792322
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
Dimitry Sibiryakov,
да все правильно с ошибкой, вопрос как ее победить
https://www.libssh2.org//libssh2_userauth_publickey_fromfile_ex.html
Return 0 on success or negative on failure. It returns LIBSSH2_ERROR_EAGAIN when it would otherwise block. While LIBSSH2_ERROR_EAGAIN is a negative number, it isn't really a failure per se.
...
Рейтинг: 0 / 0
27.03.2019, 14:22
    #39792340
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
Если это действительно EAGAIN, то просто вызывай снова.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.03.2019, 14:27
    #39792350
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
Dimitry Sibiryakov,

сколько снова?
...
Рейтинг: 0 / 0
27.03.2019, 14:57
    #39792374
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
wolverinсколько снова?

Зависит от причины EAGAIN. Если это сигнал - по обстоятельствам. Если сокет в
неблокирующем режиме - пока не надоест.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
27.03.2019, 19:18
    #39792545
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
Dimitry Sibiryakov,

количество вызовов не влияет на результат
...
Рейтинг: 0 / 0
27.03.2019, 19:20
    #39792546
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
да и код LIBSSH2_ERROR_EAGAIN другой -37
...
Рейтинг: 0 / 0
28.03.2019, 06:11
    #39792671
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
может версия из репозитория старовата 1.4.3-4.1+deb8u2

хотя ssh клиент же как то работает в этой версии дебиана
...
Рейтинг: 0 / 0
28.03.2019, 08:06
    #39792692
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
дописал в обработку ошибки libssh2_session_last_error, который пишет Unable to send userauth-publickey request
...
Рейтинг: 0 / 0
28.03.2019, 13:56
    #39792931
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
похоже libssh2 не может прожевать ключ ssh, а какой ключ он вообще способен понимать?
...
Рейтинг: 0 / 0
29.03.2019, 11:20
    #39793479
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
вобщем качнул 1.8.2, собрал на openssl c дебагом - и просто по приватному ключу без публичного заработало
версия в репозитории КРИВАЯ
...
Рейтинг: 0 / 0
29.03.2019, 11:20
    #39793481
wolverin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
впрочем судя по гуглу в 1.8.1 тоже самое
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / libssh2 и LIBSSH2_ERROR_SOCKET_SEND / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]