1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xfan1024-oh-dropbear

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
DEVELOPING.md 5.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 11:01 35287c1

Примечания разработчика

Сборка

Инструкции по сборке см. в INSTALL. SMALL содержит советы по созданию меньших двоичных файлов, также см. комментарии в default_options.h.

Отладочная печать

Установите #define DEBUG_TRACE 1 в localoptions.h, чтобы включить опцию -v для dropbear и dbclient. Это выводит различные детали сеанса. Для разработки полезно запускать dropbear -F -E на переднем плане. Вы можете установить #define DEBUG_NOFORK 1, чтобы сделать dropbear однократным сервером, который легко запустить под отладчиком.

Случайные источники

Большинству криптографических систем требуется хороший источник случайной энтропии, как для генерации секретных ключей, так и в ходе сеанса. Dropbear использует системный вызов Linux-ядра getrandom(), чтобы убедиться, что системный генератор случайных чисел (RNG) был инициализирован перед его использованием. В некоторых системах во время ранней загрузки собирается недостаточно энтропии — генерация hostkeys тогда будет блокироваться на некоторое время. У Dropbear есть опция -R для генерации hostkeys при первом подключении по мере необходимости — это даст системе больше времени для сбора энтропии.

Алгоритмы

Списки алгоритмов по умолчанию указаны в common-algo.c. Они расположены в порядке приоритета, используется первый подходящий выбор клиента (см. rfc4253). У клиента Dropbear есть аргументы -c и -m, которые позволяют выбирать алгоритмы во время выполнения (на июнь 2020 года не работает для сервера).

Включение/отключение алгоритмов выполняется в localoptions.h, см. default_options.h.

Стиль

Исходный код имеет отступ с помощью табуляции, ширина установлена равной 4 (хотя ширина не должна иметь большого значения). Фигурные скобки находятся на той же строке, что и функции/циклы/if — старайтесь поддерживать согласованность с существующим кодом.

Все операторы if должны иметь фигурные скобки, исключений нет.

Избегайте использования арифметики указателей, вместо этого следует использовать функции в buffer.h.

Некоторые платформы Dropbear имеют старые компиляторы. Объявления переменных должны быть в верхней части области видимости, а комментарии должны быть /* */, а не //.

Переменные-указатели должны быть инициализированы значением NULL — это может уменьшить серьёзность ошибок.

Сторонний код

Libtomcrypt и libtommath периодически синхронизируются с вышестоящими версиями, поэтому избегайте внесения изменений в этот код, которые потребуется поддерживать. Улучшения можно отправить в вышестоящий проект libtom.

Пользователь без прав root

Сервер Dropbear будет нормально работать от имени пользователя без прав root, позволяя входить только этому пользователю. Аутентификация по паролю, вероятно, не будет работать (невозможно прочитать теневые пароли). Вам нужно будет создать hostkeys, которые будут доступны для чтения.

Настройка соединения

Dropbear реализует first_kex_packet_follows для уменьшения задержки рукопожатия (rfc 4253 7.1). Некоторые менее распространённые реализации не справляются с этим, это может быть причиной проблем с подключением. Также обратите внимание, что Dropbear может отправлять несколько ssh-пакетов в одном TCP-пакете — это просто поток.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xfan1024-oh-dropbear.git
git@api.gitlife.ru:oschina-mirror/xfan1024-oh-dropbear.git
oschina-mirror
xfan1024-oh-dropbear
xfan1024-oh-dropbear
master