Создать зашифрованный пароль для сеанса экрана GNU
Как программно сгенерировать пароль для сеанса экрана GNU?
Обычно, чтобы определить пароль для существующего экрана GNU, мы должны:
- Начать экран
- Делаем Ctrl+A : пароль
- После повторного подключения на экране появится запрос пароля
И чтобы применить пароль к новым сеансам экрана:
- Делаем Ctrl+A ]
- Скопируйте зашифрованный пароль
- Поместите зашифрованный пароль в
~/.screenrc
(или некоторый пользовательский файл), которому предшествуетpassword
заявление - При следующем запуске (
screen -c "/path/to/custom_screenrc
для пользовательских файлов), экран спросит пароль
Это много ручных шагов для создания зашифрованного пароля.
Я хочу запустить команду для генерации зашифрованного пароля .screenrc
,
1 ответ
Экран 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
,