3

Как программно сгенерировать пароль для сеанса экрана GNU ?

Обычно, чтобы определить пароль для существующего экрана GNU, мы должны:

  • Начать экран
  • Делаем Ctrl+A : пароль
  • После повторного подключения на экране появится запрос пароля

И чтобы применить пароль к новым сеансам экрана:

  • Делаем Ctrl+A ]
  • Скопируйте зашифрованный пароль
  • Поместите зашифрованный пароль в ~/.screenrc (или в некоторый пользовательский файл) перед оператором password
  • При следующем запуске (screen -c "/path/to/custom_screenrc для пользовательских файлов) экран запросит пароль

Это много ручных шагов для создания зашифрованного пароля.

Я хочу запустить команду для генерации зашифрованного пароля, который будет помещен в .screenrc .

1 ответ1

2

Экран GNU использует библиотеку GNU crypt C (википедия, руководство) с шифрованием DES и случайную соль, состоящую из 2 случайных букв верхнего регистра.

Итак, давайте используем mkpasswd из пакета whois , который опирается на ту же библиотеку:

sudo apt-get install whois

Затем сгенерируйте зашифрованный пароль:

(echo -n "password "; mkpasswd -m des -S SO "test") >> ~/.screenrc

В следующий раз, когда вы начнете новый экран, он попросит пароль.

Альтернатива для применения пароля только для определенных (новых) экранов:

tmpconfig="$(mktemp /tmp/.screenrc-XXXXXX)"
(echo -n "password "; mkpasswd -m des -S SO "test") > "$tmpconfig"
screen -c "$tmpconfig"
rm "$tmpconfig"

Вы можете безопасно удалить временный файл конфигурации после запуска экрана. Зашифрованный пароль сохраняется в памяти после запуска.

Замечания:

  • test это пароль.
  • SO соль Вы можете оставить эту соль или заменить ее любыми двумя прописными буквенными символами, то есть ^[A-Z]{2,2}$ на языке регулярных выражений. Просто для информации (и для переборщиков) первые два символа зашифрованного пароля - это действительно соль.
  • Для небольшой дополнительной защиты временных экранных файлов храните их в оперативной памяти вместо жесткого диска, используя /run/shm вместо /tmp .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .