Как пользоваться empty ?

Используем пакеты, расширяющие возможности оборудования
ZigZag
Сообщения: 177
Зарегистрирован: 28 окт 2015, 03:43

Сообщение ZigZag » 13 мар 2019, 17:19

Код: Выделить всё

ssh -o "StrictHostKeyChecking=no" user@host
У меня ssh несколько другой "системы" :D
WARNING: Ignoring unknown argument '-o'
ну да это отдельная история ...
В случае с expect без разницы - компиляция (на Андроиде, но не для Entware) у меня заняла 2-3 минуты. На компе было бы 1-2 минуты. Но на нативной сборке в общем случае настаивать не буду)
Сильно сомневаюсь, что у меня до этого дойдут руки до этого в ближайшее время :/
Имхо, конечно, но избегать надо использования telnet в пользовательских целях. 21 век давно.
Локальная сеть, на основных устройствах авторизация пишется в логи локально и удалённо. На остальных и так сгодится. Вовне - только ssh.

ssh дело хорошее, но в большинстве случаев, с которыми сталкивался я, он реализован или костыльно или криво (в том случае адекватный шелл работал лишь через приснопамятный netcat), так что telnet - это хорошее подспорье для аварийных случаев и отказываться от него я смысла не вижу :)
может быть да, а может быть нет. Как я понял, empty без интерактивного режима типа interact, могу ошибаться)
ОК, поинтересуюсь.
Скомпилированный expect кстати работает, по ssh авторизирует, что по паролю, что по парольной фразе ключа. Забава, короче, лично для меня остается забавой, серьезных для себя применений как не видел, так и не вижу. Ну может админам всяких серверов нужно подобное, чтобы одно и то же повторно не вносить.

Ну и напрягает еще зависимость от tcl. Ненужная сама по себе штука (все же не пЁрл или пАЙтон), на нем ничего интересного не написано больше. Пока меня забавляют мысли, как этот tcl статически привязать к expect.
Если соберёте - выкладывайте, нет - хозяин барин :) Для справки выхлоп uname со стврого смарта
Linux localhost 3.4.5 #1 SMP PREEMPT Thu Mar 27 16:19:17 CST 2014 armv7l GNU/Linux
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 13 мар 2019, 18:42

ZigZag писал(а):Источник цитаты У меня ssh несколько другой "системы"

Ага, я не заметил диалога c y/n при неизвестном хосте, это не yes/no. Это dbclient. Ставьте openssh-client. С dropbear-server он дружит.
ZigZag писал(а):Источник цитаты ssh дело хорошее, но в большинстве случаев, с которыми сталкивался я, он реализован или костыльно или криво

Все выпрямляемо. Были бы руки. Виновато окружение и шелл, а не сам ssh, скорей всего. С другой стороны, telnet-шелл сделать кривым тоже можно. Я даже на винду захожу через cygwin-ssh. Кроме проблемы с дурацкой кодировкой cp-866 при вызове виндовых exe-шников все работает тип-топ.
ZigZag писал(а):Источник цитаты так что telnet - это хорошее подспорье для аварийных случаев и отказываться от него я смысла не вижу

Ну в аварийных случаях и пароль не в лом самому вбить. Аварии чинятся ручками обычно, а не автоматическими скриптами. И при аварии любой инструмент сгодится, лишь бы работал. Я же и имею в виду, что telnet не для повседневного использования.
ZigZag писал(а):Источник цитаты Для справки выхлоп uname со стврого смарта

Я на musl собираю, там хоть 2.6 ядро. Собственно поэтому и musl. Но и не обещаю собрать статично и выложить. Тоже время надо для этого.

ZigZag
Сообщения: 177
Зарегистрирован: 28 окт 2015, 03:43

Сообщение ZigZag » 14 мар 2019, 09:09

Виновато окружение и шелл, а не сам ssh, скорей всего. С другой стороны, telnet-шелл сделать кривым тоже можно. Я даже на винду захожу через cygwin-ssh.
Мб, не вникал. Просто использование комплектного ssh SamyGO для ТВ 12-го года давало крайне неприятные эффекты, ввиду чего нормальный шелл работал только через netcat.
Я даже на винду захожу через cygwin-ssh. Кроме проблемы с дурацкой кодировкой cp-866 при вызове виндовых exe-шников все работает тип-топ.
Игрался как-то с OpenSSH под виндой, но не пошло :D Удалённый шелл это явно не виндовая стезя )))
Аварии чинятся ручками обычно, а не автоматическими скриптами.
Так никто их скриптами не чинит. Скрипты исключительно для авторизации и задания глобальных переменных, а далее управление передаётся пользователю.
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 17 мар 2019, 13:37

Скомпилировал
expect.tar.gz
под ветку Entware: http://bin.entware.net/armv7sf-k2.6/ (старые ядра на armv7). Установка:

Код: Выделить всё

opkg install tcl
tar -C /opt -xzvf expect.tar.gz

Компилировал с помощью gcc из этой же ветки Entware. Конечно, нормальных dev-пакетов в Entware нет. Одних заголовков не хватает. Пришлось еще tcl собирать (версии 8.5, чтобы совпало с tcl из репы).

Вообще, Entware не хватает нормальной системы нативной сборки.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1671
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 17 мар 2019, 14:21

kaztost писал(а):Источник цитаты Одних заголовков не хватает.

Еще и не все заголовки в архиве. Некоторые, вне ..../opt/include не попадают, хотя и часто нужны. А так - набросайте, чего не хватает.

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 17 мар 2019, 14:50

Zyxmon писал(а):Источник цитаты А так - набросайте, чего не хватает.

Да я уже не помню. Судя по https://pkgs.alpinelinux.org/contents?branch=edge&name=tcl-dev&arch=x86&repo=main не хватало tclConfig.sh и libtclstub8.5.a (маленький, но нужный архив для компиляции expect, из-за него самому tcl пришлось собирать).
Зато в архиве для /opt/include много чего лишнего в 99% случаев. Я boost-заголовки имею в виду, их там кучева куча. Я не уверен, что кто-то смог нормально под boost нативно что-то собрать. Сам я g++ нативно даже не тестировал. Этот boost лучше отдельным архивом, для тех кому надо.

ZigZag
Сообщения: 177
Зарегистрирован: 28 окт 2015, 03:43

Сообщение ZigZag » 17 мар 2019, 17:01

Скомпилировал
Спасибо :) Вроде вполне зашуршало после доустановки пакета tcl, судя по выхлопу
usage: expect [-div] [-c cmds] [[-f] cmdfile] [args]
Сейчас организую парочку скриптов :)

upd: Всё пошло на ура )))

К слову, ещё одна причина, по которой я маялся с автоматизацией авторизации - это вывод через tee последующих манипуляций после передачи действий пользователю в лог. Под win с этим неплохо справляется putty, а вот в терминале под никсами с этим делом напряжёнка.

Плюс ко всему этому, под андроидом (по крайней мере на моих смартах) есть вполне себе рабочий adb, который я использую в связке с командой shell и bash'ом на "той" стороне. Как вы уже догадались, без expect'a нужно довольно много телодвижений, дабы попасть в "комфортную" среду :D Особенно, если требуется удалённый коннект.

p.s. Меж тем дело с empty сдвинулось с мёртвой точки. Ему для работы необходимы так называемые fifo-файлы. "Каналы" для межпрограммного общения. Создаются утилитой mkfifo. ФС для их работы должна быть исключительно никсовая (это был один из фейлов :D ) Далеко пока продвинуться не успел т.к. времени было мало, но по логам было видно, что авторизация прошла. Подниму локальный телнет-сервер и буду играться, чтоб не расстараться с реальными устройствами ))) Осталось разобраться с передачей команд и аналогом interact-режима (уже тупо интересно, как данная тулза работает).
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

kaztost
Сообщения: 223
Зарегистрирован: 16 июл 2017, 23:29

Сообщение kaztost » 17 мар 2019, 21:02

ZigZag писал(а):Источник цитаты дабы попасть в "комфортную"

Минус expect-а в том, что при его использовании надо вводить resize после каждого изменения размера терминала (putty или другой эмулятор, неважно). Программы типа mc будут криво выглядеть иначе. У adb тоже есть похожий дефект, но он исправляется однократным вводом resize. То же самое со связкой su-клиент/su-демон на Андроиде - resize нужен один всего раз. С expect - каждый раз. Я не очень разбираюсь в этих псевдотерминальных вещах. Может быть есть более эффективное лекарство.

Самая конфортная среда - непосредственная авторизация через ssh. Можно через adb-форвардинг tcp-портов.

ZigZag
Сообщения: 177
Зарегистрирован: 28 окт 2015, 03:43

Сообщение ZigZag » 17 мар 2019, 21:57

Самая конфортная среда - непосредственная авторизация через ssh. Можно через adb-форвардинг tcp-портов.
Под "комфортной" средой подразумевался привычный шелл с использованием конфига с настройками.
Программы типа mc будут криво выглядеть иначе.
ОК, буду иметь ввиду. Благо, не имею привычки юзать mc :) cp/mv/ls - вполне достаточно.
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]

ZigZag
Сообщения: 177
Зарегистрирован: 28 окт 2015, 03:43

Сообщение ZigZag » 26 мар 2019, 00:30

К слову, под android 5.0 aarch64 и 3.10.65 не взлетело
Tcl_Init failed: out of stack space (infinite loop?)
ну да я на это особо не надеялся :) Там буду продолжать юзать термуксовую версию.
Keenetic Omni II [v2.13.C.0.0-1]; Zyxel Keenetic [V1.00(BFW.4.4)D0]


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 1 посетитель :: 1 зарегистрированный, 0 скрытых и 0 гостей (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: Majestic-12 [Bot] и 0 гостей