Генерация случайных паролей с оболочкой на развертывании серверов

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

Это - то, с чем я шел:

# FUNCTION TO GENERATE A RANDOM STRING
function randpass() {
  [ "$2" == "0" ] && CHAR="[:alnum:]" || CHAR="[:graph:]"
    cat /dev/urandom | tr -cd "$CHAR" | head -c ${1:-32}
    echo
}

$NOW = $(date +"%m-%d-%Y") || echo ="Time = $now"
$APPKEY = randpass(20) || echo "Secret key = $APPKEY"
read -p "Copied down?" -n1 -s
  1. Действительно ли это - плохой подход?
  2. Это безопасно?
  3. Пароли будут сохранены как переменные после того, как развертывание закончится?

Я плохо знаком с оболочкой и администрированием Linux, таким образом, любая справка ценится.

James

0
задан 17 September 2014 в 14:19
2 ответа

1) Да, используйте что-то вроде pwgen, которое позволяет настраивать пароли (например, какие наборы символов включать, длину, общее количество сгенерированных паролей и т. Д.).

2) YMMV

3), поскольку вы их не экспортируете, №

2
ответ дан 4 December 2019 в 11:49

Я использую такой подход:

PASSWORD=$(strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 12 | tr -d '\n'; echo)

С моей точки зрения сгенерированные пароли достаточно безопасны, но я не специалист по криптографии.

Переменные сохраняются только в контексте сценария до тех пор, пока вы не используете «источник» для его выполнения. Если вы это сделаете, вы можете использовать «unset PASSWORD», чтобы удалить содержимое переменной.

* pwgen, конечно, подходит, но вы можете столкнуться с ситуацией, когда вы просто не можете установить / использовать его, я делал это довольно часто.

2
ответ дан 4 December 2019 в 11:49

Теги

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