Настройка meta для работы с раскладкой клавиш консоли carpalx-full

Дистрибутивы на основе Debian:

Debian и Ubuntu поставляют скрипт кэширования паролей decrypt _keyctl с пакетомcryptsetup .

Сценарий

decrypt _keyctl предоставляет один и тот же пароль для нескольких зашифрованных целей LUKS, избавляя вас от необходимости вводить его несколько раз. Его можно включить вcrypttabс опцией keyscript=decrypt_keyctl. Один и тот же пароль используется для целей, которые имеют одинаковый идентификатор в поле ключевого файла . При загрузке пароль для каждого идентификатора запрашивается один раз.

Пример crypttab:

                     
part1_crypt   /dev/disk/...    crypt_disks    luks,keyscript=decrypt_keyctl
part2_crypt   /dev/disk/...    crypt_disks    luks,keyscript=decrypt_keyctl

Сценарий decrypt_keyctlзависит от пакета keyutils(, который только предлагается и поэтому не обязательно должен быть установлен ).

После того, как вы обновите свой cryptab , вам также потребуется обновить initramfs, чтобы изменения вступили в силу. Используйтеupdate-initramfs -u.

Полный файл readme для расшифровки _keyctl находится в/usr/share/doc/cryptsetup/README.keyctl

К сожалению, в настоящее время это не работает в системах Debian, использующих systemd init из-заошибки(другие системы инициализации не должны затрагиваться ). Из-за этой ошибки systemd второй раз запрашивает пароль, что делает невозможным удаленную разблокировку через ssh. Debianсправочная страница crypttabпредлагает в качестве обходного пути использовать параметр initramfsдля принудительной обработки на этапе загрузки initramfs. Итак, чтобы обойти эту ошибку, пример для /etc/crypttab в Debian

                     
part1_crypt   /dev/disk/...    crypt_disks    luks,initramfs,keyscript=decrypt_keyctl
part2_crypt   /dev/disk/...    crypt_disks    luks,initramfs,keyscript=decrypt_keyctl

Дистрибутивы, которые не предоставляют расшифровку _keyctl скрипт:

Если decrypt _keyctrl не предусмотрен вашим дистрибутивом, устройство можно разблокировать с помощью ключевого файла в зашифрованной корневой файловой системе.Это когда корневая файловая система может быть разблокирована и смонтирована раньше любого другого зашифрованного устройства.

LUKS поддерживает несколько слотов для ключей. Это позволяет альтернативно разблокировать устройство с помощью пароля, если файл ключа недоступен/утерян.

  1. Сгенерируйте ключ со случайными данными и установите его права доступа только для чтения владельцем, чтобы избежать его утечки. Обратите внимание, что файл ключа должен находиться в корневом разделе, который разблокируется первым.

     dd if=/dev/urandom of= bs=1024 count=1
     chmod u=rw,g=,o= 
    
  2. Добавьте ключ на устройство LUKS

     cryptsetup luksAddKey  
    
  3. Настройте crypttab для использования файла ключа. Первая строка должна быть корневым устройством, так как устройства разблокируются в том же порядке, что и в crypttab . Используйте абсолютные пути для ключевых файлов.

                                      
     root_crypt    /dev/disk/...    none                       luks
     part1_crypt   /dev/disk/...             luks
    
0
25.12.2019, 14:37
1 ответ

Скорее всего потому, что код для консоли написан для чтения непосредственно с клавиатуры -устройства (файла в/dev/input/by-path)вместо чтения из /dev/stdin. При прямом чтении с устройства раскладки клавиатуры игнорируются.

Если это действительно причина, вы должны заметить, что все остальные клавиши также действуют так, как если бы раскладка не была изменена. (У меня нет Arch, поэтому я не могу его протестировать.)

0
28.01.2020, 02:59

Теги

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