在服务器部署上使用shell生成随机口令

当我运行我的自动部署脚本时,我试图随机生成安全的密码到我的各种configuration文件和设置。 我希望它们被生成,显示给用户,用作部署的一部分,然后被丢弃。

这就是我正在做的事情:

# 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. 部署完成后密码是否会作为variables存储?

我是新的shelllinuxpipe理,所以任何帮助表示赞赏。

詹姆士

1)是的,使用像pwgen这样的允许自定义密码(比如包括哪些字符集,长度,生成密码的总数等)的东西。

2)YMMV

3)由于你不是出口他们,没有。

我正在使用这种方法:

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

从我的angular度来看,生成的密码是相当安全的,但我不是一个encryption专家。

variables只存储在脚本的上下文中,只要不使用“源”来执行即可。 如果你这样做,你可以使用“取消密码”来删除variables的内容。

* pwgen当然很好,但是你可能会遇到一个你根本无法安装/使用的情况,我经常这样做。