$USER не устанавливают ssh

[

] В этом есть зерно истины, на самом деле больше истины, чем мифа, но, тем не менее, это утверждение отражает фундаментальное непонимание того, что происходит. Да, перемещение мыши во время генерации ключа с помощью GPG может быть хорошей идеей. Да, перемещение мыши вносит некоторую энтропию, которая делает случайные числа случайными. Нет, перемещение мыши не делает ключ более безопасным.[

] [

]Все хорошие генераторы случайных чисел, подходящие для криптографии, и Linux'ы в этой категории, имеют две компоненты: [

] [

    ] [
  • ]Источник []Энтропии [], который не является детерминированным. Целью энтропии является загрузка генератора случайных чисел с непредсказуемыми данными. Источник энтропии должен быть недетерминированным: в противном случае противник может воспроизвести то же самое вычисление.[
  • ] [
  • ]A []генератор псевдослучайных чисел[], который из изменяющегося внутреннего состояния генерирует непредсказуемые случайные числа детерминированным образом.[
  • ] [

] [

]Энтропия должна исходить из источника, внешнего по отношению к компьютеру. Пользователь является одним из источников энтропии. То, что делает пользователь, в основном, не случайно, но тонкая синхронизация нажатий клавиш и движений мыши настолько непредсказуема, что слегка случайна - не очень случайна, но мало-помалу она накапливается. К другим потенциальным источникам энтропии относятся синхронизация сетевых пакетов и белый шум камеры или микрофона. В различных версиях и конфигурациях ядра может использоваться различный набор источников. Некоторые компьютеры имеют специальные аппаратные RNG схемы на основе радиоактивного распада или, что менее впечатляет, нестабильных электронных схем. Эти выделенные источники особенно полезны во встраиваемых устройствах и серверах, которые могут иметь довольно предсказуемое поведение при первой загрузке, без пользователя, чтобы делать странные вещи.[

] [

]Linux предоставляет случайные числа программам через два устройства: [][]/dev/random[] and []/dev/urandom[][]. Считывание с любого устройства возвращает криптографическое качество. Оба прибора используют одно и то же внутреннее состояние RNG и один и тот же алгоритм для преобразования состояния и получения случайных байтов. Они имеют своеобразные ограничения, которые ни одно из них не делает правильным:[

] [

    ] [
  • ][]/dev/urandom[] может возвращать предсказуемые данные, если система еще не накопила достаточно энтропии.[
  • ] [
  • ][]/dev/random[] вычисляет количество доступной энтропии и блокирует, если их недостаточно. Звучит неплохо, за исключением того, что вычисление основано на теоретических соображениях, которые заставляют количество доступной энтропии уменьшаться линейно с каждым выходным битом. Таким образом, []/dev/random[] имеет тенденцию очень быстро блокировать.[
  • ] [

] [

]Системы Linux сохраняют внутреннее состояние RNG на диск и восстанавливают его во время загрузки. Поэтому энтропия переносится с одной загрузки на другую. Единственный раз, когда энтропии в системе Linux может не хватить, это когда она только что установлена. Как только в системе достаточно энтропии, энтропия не уменьшается; уменьшается только ошибочное вычисление в Linux. Дополнительные разъяснения по этому поводу, Чтение [][]/dev/urandom[] подходит для генерации криптографического ключа [] профессиональным криптографом. См. также [] Можете ли вы объяснить оценку энтропии, используемую в случайных случаях.c[].[

] [

] Перемещение мыши добавляет больше энтропии в систему. Но []gpg может считывать только из []/dev/random[], а не из []/dev/urandom[][] (способ решить эту проблему - сделать []/dev/random[] таким же прибором 1:9, как []/dev/urandom[]), так что он никогда не рискует получить неслучайные числа. [] Если вы не перемещаете мышь, клавиша является настолько случайной, насколько это возможно; но что может случиться, так это то, что gpg может заблокироваться[] при чтении из []/dev/random[], ожидая, пока счетчик энтропии ядра не поднимется.[

]).

1
27.01.2015, 02:05
1 ответ

Вы можете заменить $USER на $(whoami) (команда, которая встроена почти во все Unix-системы).

Что касается причины, по которой $USER не установлен, то обычно устанавливается с помощью login. Но так как вы используете SSH на сервере вместо фактической интерактивной оболочки, переменная $USER никогда не устанавливается (и некоторые другие переменные окружения).

2
27.01.2020, 23:37

Теги

Похожие вопросы