创建私有注册表时,使用-Bbn选项生成id和密码

60次阅读
没有评论

问题描述

想要了解在以下命令中,Bbn代表什么意思:

docker run --entrypoint htpasswd registry:2 -Bbn testuser password > auth/htpasswd

用户知道如果不提供bbn选项,就无法将其写入htpasswd文件,但是不清楚它的含义。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在这个命令中,Bbn选项是用于指定密码加密方式的。具体含义如下:
-B:使用bcrypt加密密码。bcrypt是一种目前被认为非常安全的加密方式。
-b:使用批处理模式,即从命令行获取密码,而不是提示用户输入密码。请注意,这个选项需要非常小心使用,因为密码在命令行上是可见的。对于脚本使用,请参考-i选项。此选项在2.4.4及更高版本中可用。
-n:将结果显示在标准输出上,而不是更新文件。这对于生成符合Apache要求的密码记录以包含在非文本数据存储中非常有用。这个选项会改变命令行的语法,因为省略了passwdfile参数(通常是第一个参数)。它不能与-c选项组合使用。

所以,在上述命令中,-Bbn选项的含义是使用bcrypt加密密码,并以批处理模式获取密码,将结果输出到标准输出。

方案2

请注意以下操作注意版本差异及修改前做好备份。
另一种方法是使用htpasswd命令手动创建密码文件。htpasswd是Apache HTTP服务器的一个工具,用于创建和管理基于密码的身份验证。以下是使用htpasswd命令创建密码文件的步骤:
1. 打开终端或命令提示符。
2. 运行以下命令来创建密码文件:

htpasswd -Bbn testuser password > auth/htpasswd

在上面的命令中,-B选项指定使用bcrypt加密密码,-b选项指定以批处理模式获取密码。testuser是要创建的用户名,password是要设置的密码。> auth/htpasswd将结果输出到auth/htpasswd文件中。

请注意,使用htpasswd命令创建密码文件时,需要确保已经安装了Apache HTTP服务器,并且htpasswd命令在系统的可执行路径中。

以上是两种使用-Bbn选项创建密码文件的方法。根据你的需求和环境,选择适合你的方法即可。

正文完