(Временная тема) Статическая сборка dropbear 2018.76

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

Сообщение kaztost » 06 май 2018, 17:47

Статическая сборка нового dropbear для armv7 на musl-библиотеке с пропатченными /etc->/opt/etc путями, как в Entware. Патчил в musl все подряд - поэтому также /opt/etc/resolv.conf и /opt/etc/hosts для dbclient. Для установки переименовываем разархивированный файл dropbearmulti в dropbear и заменяем им энтварный /opt/sbin/dropbear, сохраняя права 755.

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

adm_
Сообщения: 13
Зарегистрирован: 02 мар 2018, 06:23

Сообщение adm_ » 06 май 2018, 23:46

спасибо большое ;-)

adm_
Сообщения: 13
Зарегистрирован: 02 мар 2018, 06:23

Сообщение adm_ » 07 май 2018, 03:25

kaztost,
/.ssh у меня давно засимлинкован на /opt/root/.ssh , но с путями-то я разобрался, проблема в том, что у меня ни старый дробеэ, ни новый не принимают пароль, а новый не принимает ещё и тщетно перебираемые/создаваемые ключи (в старый по ключу по-прежнему захожу).
пароль специально менял и passwd, и /opt/bin/passwd, и chpasswd, - при всех сменах меняется дата у файлов /etc/passwd(~) которые засимлинкованы в /opt/etc... не подскажете, в какую сторону рыть? андроид 4.4.2, если это существенно...

dropbearkey -y -f /home/admz/.ssh/ssh_admz_dropbear_key показывает нормальный ключ, всё от первого начинающего ssh-rsa до конца предпоследней строки cat'ом закидываю в authorized_keys (который и в /opt/etc/dropbear и в засимлинкованном на него ./ssh)... ЧЯДНТ?

доп. вопросы по рекомендации эйджа:
1) чем установка в chroot отличается от установки в докер, что оптимальнее?
2) а готовый свой тулчейн не дадите?

..на неупоминаемом сайте мы были на "ты", здесь выкаю из почтительности и благодарности... ;-)

апдейт: доломал и старого дропбеэ - теперь и он ключ не принимает... ;-) надо поспать слегка и накатить позавчерашний нандроидный бэкап... ;-)

adm_
Сообщения: 13
Зарегистрирован: 02 мар 2018, 06:23

Сообщение adm_ » 07 май 2018, 08:18

kaztost,
быстрый ответ спросонья.

/etc/shadow нету, по паролю никогда не заходил (на старом дропбеэ первый ключ настраивался ручками, когда ssh-copy-id не отработал), где_взять/как сделать?
скачал, как анекдот: на яндекс из москвы сумел зайти только через тор.
готовый работающий тулчейн оч. хочу, т.к. неработающих х86_64 -> armv7-a за 3 дня возни сделал 5 штук. ;-)

итого:
проверил, всё фурычит, только жутко медленно и у mc не работает редактор, а nano не находит xterm256, так что добавить дропбеэ ключ -W 1024 не смог.
+ не понимаю, как прокинуть ключ key на ноут (scp из ssh не проканало) или в файловую систему погремушки, не ковыряясь в дропбеэ на ноуте, настроенном только на аутентификацию по ключу.
...а из архива key не выдернуть, т.к он генерится при запуске, выковырял только shadow, сейчас попробую по паролю...

а как убить этот chroot ,без перезагрузки погремушки?

...сейчас запущу дропбеэ 2018.76 из-под strace'а и попробую сам разобраться в логе...

спасибо огромное.

вот strace.log, в начале грязь недоконфигурированности, в самом конце - незаход по ключу и непринятие пароля:
strace.log.zip

в /etc/shells и в /opt/etc/shells добавлено /bin/false с последующей пустой строкой. но всё равно не заходит.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось adm_ 07 май 2018, 13:08, всего редактировалось 1 раз.

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

Сообщение kaztost » 07 май 2018, 12:41

adm_, xterm256 там действительно нет. Так что надо либо надо добавить в /data/data/a.l/p/usr/share/terminfo/x, либо выставить "export TERM=xterm" в ~/.profile (вообще мне этот зоопарк андроидных терминалов надоел, dropbear откуда-то из недр системы его извлекает при авторизации, надо пропатчить, чтобы всегда xterm был). С scp странно. У меня на всех устройствах работает и scp и sftp со всеми клиентами:

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

~ $ scp -P 2222 user@localhost:~/key key1
user@localhost's password:
key                                 100% 1679   338.0KB/s   1.6KB/s   00:00
~ $ ls
key      key.pub  key1     log

Бинарник scp там тоже от openssh. И еще доступ к /sdcard у приложухи есть (просто ограничен доступ к /data). Достаточно сделать "cp key /sdcard/key". Там никакого chroot-а нет. Я chroot использую только для сборки.

И еще можно запустить фтп на порту 2121: "pure-ftpd -Bl unix" c тем же логином и паролем (можно и виртуальных юзеров создать через pure-pw).

P.S. Это я про https://yadi.sk/d/zNb4xP_I3WmkNc

adm_
Сообщения: 13
Зарегистрирован: 02 мар 2018, 06:23

Сообщение adm_ » 07 май 2018, 13:11

выложил в предыдущем сообщении первый эстрэйс.лог, сейчас второй выложу, уже начисто сделанный.

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

Сообщение kaztost » 07 май 2018, 13:22

adm_, /etc/shells (c шеллом из /etc/passwd) забыли

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

18988 open("/etc/shells", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)

Ну и /etc/group наверное желателен для порядка

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

Сообщение Zyxmon » 07 май 2018, 13:41

kaztost писал(а):Источник цитаты /etc/shells (c шеллом из /etc/passwd) забыли

Если dropbear не находит файл shells, то он считает что есть два шелла /bin/sh и /bin/ash. Если в passwd другой шелл то логин не принимается.
По крайней мере так было раньше.... Последнию версию не смотрел.

adm_
Сообщения: 13
Зарегистрирован: 02 мар 2018, 06:23

Сообщение adm_ » 07 май 2018, 13:55

kaztost, Zyxmon,

здесь все конфигурационные грязи были вычищены, и в логе только:
1) отлуп на ssh -i /home/admz/.ssh/ssh_admz_dropbear_key + непринятие пароля;
2) отлуп на ssh + непринятие пароля.
(команду вынужденно обрезал, т.к. сайтовская цензура не пропускала ключ vvv и алиас коннекта ;-) ).
strace1.log.zip


по паролю даже при добавленных в /opt/etc /etc/shells и /etc/group не входит. или надо было перегрузить погремушку?
перегрузил, всё равно не входит, хотя:
/data/local/entware/root # find / -name "shells"
/system/etc/shells
/data/data/a.l/p/etc/shells
/data/local/entware/etc/shells
/data/local/entware/root # find / -name "group"
/system/etc/group
find: ‘/proc/5850’: No such file or directory
find: ‘/proc/5851’: No such file or directory
/data/data/a.l/p/etc/group
/data/local/entware/etc/group
/data/local/entware/root #

Вы про непринятие ключей что-нибудь можете предположить/сказать?

дополнительный нубский вопрос: как определить, по какому ключу меня пускает старый дропбеэ?
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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

Сообщение kaztost » 07 май 2018, 14:51

Zyxmon, по коду dropbear (svr-auth.c) там идет обращение к getusershell()

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

        /* check the shell is valid. If /etc/shells doesn't exist, getusershell()
         * should return some standard shells like "/bin/sh" and "/bin/csh" (this
         * is platform-specific) */
        setusershell();
        while ((listshell = getusershell()) != NULL) {
                TRACE(("test shell is '%s'", listshell))
                if (strcmp(listshell, usershell) == 0) {
                        /* have a match */
                        goto goodshell;
                }
        }
        /* no matching shell */
        endusershell();

А getusershell() зависит от того, какое libc. В случае сборки из первого сообщения там похоже только /bin/sh.


Вернуться в «Entware на Android»

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

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

Сейчас этот форум просматривают: Baidu [Spider] и 2 гостя