создать теневой пароль в Ruby для автоматической установки Ubuntu
У меня есть скрипт Ruby, который с помощью шаблона создаетcloud-init
yaml, который будет использоваться для автоматической установки Ubuntu . Сам скрипт должен зашифровать пароль пользователя и на данный момент я делаю это с помощью BCrypt:
BCrypt::Password.create("foo")
Когда я запускаю автоустановку и она завершается, я не могу войти в систему, используя . Итак, по какой-то причине установщик или какая-то его часть (буду признателен, если кто-нибудь объяснит мне это) неправильно расшифровывает пароль, возможно, потому, что он в неправильном формате или что-то в этом роде.
Затем я попробовал использоватьmkpasswd
изwhois
упаковка (apt install whois
) для генерации зашифрованного хеша следующим образом:
echo foo | mkpasswd -m sha-512 -s
и сгенерированный хэш сработал, и я смог войти в систему с помощьюfoo
после установки.
Поэтому мой главный вопрос: как я могу воспроизвестиmkpasswd -m sha-512
поведение в скрипте Ruby без запуска процесса оболочки из самого скрипта?
ТИА!
РЕДАКТИРОВАТЬ
Я попробовал использовать следующее решение Ruby:
salt = 's0m3s4lt'
hash = 'test'.crypt('$6$' + salt)
puts hash
но сгенерированный пароль тоже неверен.