Хотя я не вижу особой пользы в чтении строки как отдельных символов в массиве, просто для -повторного формирования строки установка IFS
в один пробел приведет к вставке одного пробела между элементами массива при использовании "${arr[*]}"
. Вместо этого установите IFS
на пустую строку :
readarray -t arr < <( grep -o. <<<"$1" )
( IFS=''; printf '%s\n' "${arr[*]}" )
Я использую подоболочку для назначения IFS
и для printf
, чтобы не изменять значение IFS
для остальной части скрипта.
KeyRegenerationInterval — это параметр для устаревшей версии протокола SSH 1.
Кроме того, это не касается ключей аутентификации :, речь идет об эфемерных сеансовых ключах , которые генерируются для каждого отдельного сеанса SSH и регенерируются в середине -сеанса, если сеанс выполняется достаточно долго (интервал регенерации ключа SSHv1 по умолчанию составлял 3600 секунд или один час ).
Эти ключи никогда не хранились на диске. :Идея заключалась в том, что если злоумышленник получит root-доступ на сервере и захватит сеансовые ключи путем сброса sshd
памяти в какой-то момент времени, даже если злоумышленник записанные старые соединения SSH, захваченные ключи будут расшифровывать только до последнего часа или около того сеансов, которые существовали в момент захвата ключа, и не более того.
Протокол SSH версии 1 имеет известные слабости на уровне -структуры и не должен больше использоваться. Протокол версии 2 работает по-другому :Версии OpenSSH, которые были скомпилированы для поддержки только версии 2, вообще не будут иметь этой настройки.