Примечания разработчика
Инструкции по сборке см. в 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.
Сервер Dropbear будет нормально работать от имени пользователя без прав root, позволяя входить только этому пользователю. Аутентификация по паролю, вероятно, не будет работать (невозможно прочитать теневые пароли). Вам нужно будет создать hostkeys, которые будут доступны для чтения.
Dropbear реализует first_kex_packet_follows для уменьшения задержки рукопожатия (rfc 4253 7.1). Некоторые менее распространённые реализации не справляются с этим, это может быть причиной проблем с подключением. Также обратите внимание, что Dropbear может отправлять несколько ssh-пакетов в одном TCP-пакете — это просто поток.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )