powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / libssh2 и LIBSSH2_ERROR_SOCKET_SEND
17 сообщений из 17, страница 1 из 1
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
    #39792263
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите что делаю не так!?
Вроде все по примеру, а не выходит каменный цветок на 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
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
    #39792308
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverinlibssh2_userauth_publickey_fromfile выпадает с ошибкой -7

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

судя по исходнику код соответствует LIBSSH2_ERROR_SOCKET_SEND - Unable to send data on socket.
что вобщем то мне ни о чем не говорит
может нужно что то еще указывать перед соединением, параметры какие то
...
Рейтинг: 0 / 0
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
    #39792316
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
    #39792318
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wolverin,

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

без пароля, так вроде проверил заходит по ключу штатно на удаленный
...
Рейтинг: 0 / 0
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
    #39792322
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
    #39792340
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если это действительно EAGAIN, то просто вызывай снова.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
libssh2 и LIBSSH2_ERROR_SOCKET_SEND
    #39792350
Фотография wolverin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

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

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

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

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


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