标签 密码 下的文章

上一篇文章我们讨论了使用服务器端技术的密码管理工具。这些工具非常有趣而且适合云安装。在本文中,我们将讨论 KeePassXC,这是一个简单的多平台开源软件,它使用本地文件作为数据库。

这种密码管理软件的主要优点是简单。无需服务器端技术专业知识,因此可供任何类型的用户使用。

介绍 KeePassXC

KeePassXC 是一个开源的跨平台密码管理器:它是作为 KeePassX 的一个分支开始开发的,这是个不错的产品,但开发不是非常活跃。它使用 256 位密钥的 AES 算法将密钥保存在加密数据库中,这使得在云端设备(如 pCloud 或 Dropbox)中保存数据库相当安全。

除了密码,KeePassXC 还允许你在加密皮夹中保存各种信息和附件。它还有一个有效的密码生成器,可以帮助用户正确地管理他的凭据。

安装

这个程序在标准的 Fedora 仓库和 Flathub 仓库中都有。不幸的是,在沙箱中运行的程序无法使用浏览器集成,所以我建议通过 dnf 安装程序:

sudo dnf install keepassxc

创建你的皮夹

要创建新数据库,有两个重要步骤:

  • 选择加密设置:默认设置相当安全,增加转换轮次也会增加解密时间。
  • 选择主密钥和额外保护:主密钥必须易于记忆(如果丢失它,你的皮夹就会丢失!)而足够强大,一个至少有 4 个随机单词的密码可能是一个不错的选择。作为额外保护,你可以选择密钥文件(请记住:你必须始终都有它,否则无法打开皮夹)和/或 YubiKey 硬件密钥。

数据库文件将保存到文件系统。如果你想与其他计算机/设备共享,可以将它保存在 U 盘或 pCloud 或 Dropbox 等云存储中。当然,如果你选择云存储,建议使用特别强大的主密码,如果有额外保护则更好。

创建你的第一个条目

创建数据库后,你可以开始创建第一个条目。对于 Web 登录,请在“条目”选项卡中输入用户名、密码和 URL。你可以根据个人策略指定凭据的到期日期,也可以通过按右侧的按钮下载网站的 favicon 并将其关联为条目的图标,这是一个很好的功能。

KeePassXC 还提供了一个很好的密码/口令生成器,你可以选择长度和复杂度,并检查对暴力攻击的抵抗程度:

浏览器集成

KeePassXC 有一个适用于所有主流浏览器的扩展。该扩展允许你填写所有已指定 URL 条目的登录信息。

必须在 KeePassXC(工具菜单 -> 设置)上启用浏览器集成,指定你要使用的浏览器:

安装扩展后,必须与数据库建立连接。要执行此操作,请按扩展按钮,然后按“连接”按钮:如果数据库已打开并解锁,那么扩展程序将创建关联密钥并将其保存在数据库中,该密钥对于浏览器是唯一的,因此我建议对它适当命名:

当你打开 URL 字段中的登录页并且数据库是解锁的,那么这个扩展程序将为你提供与该页面关联的所有凭据:

通过这种方式,你可以通过 KeePassXC 获取互联网凭据,而无需将其保存在浏览器中。

SSH 代理集成

KeePassXC 的另一个有趣功能是与 SSH 集成。如果你使用 ssh 代理,KeePassXC 能够与之交互并添加你上传的 ssh 密钥到条目中。

首先,在常规设置(工具菜单 -> 设置)中,你必须启用 ssh 代理并重启程序:

此时,你需要以附件方式上传你的 ssh 密钥对到条目中。然后在 “SSH 代理” 选项卡中选择附件下拉列表中的私钥,此时会自动填充公钥。不要忘记选择上面的两个复选框,以便在数据库打开/解锁时将密钥添加到代理,并在数据库关闭/锁定时删除:

现在打开和解锁数据库,你可以使用皮夹中保存的密钥登录 ssh。

唯一的限制是可以添加到代理的最大密钥数:ssh 服务器默认不接受超过 5 次登录尝试,出于安全原因,建议不要增加此值。


via: https://fedoramagazine.org/managing-credentials-with-keepassxc/

作者:Marco Sarti 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在过去的一年中,你可能会遇到一些试图向你推销密码管理器的广告。比如 LastPass1PasswordDashlane。密码管理器消除了记住所有网站密码的负担。你不再需要使用重复或容易记住的密码。相反,你只需要记住一个可以解锁所有其他密码的密码。

通过使用一个强密码而​​不是许多弱密码,这可以使你更安全。如果你有基于云的密码管理器(例如 LastPass、1Password 或 Dashlane),你还可以跨设备同步密码。不幸的是,这些产品都不是开源的。幸运的是,还有其他开源替代品。

开源密码管理器

替代方案包括 Bitwarden、LessPassKeePass。Bitwarden 是一款开源密码管理器,它会将所有密码加密存储在服务器上,它的工作方式与 LastPass、1Password 或 Dashlane 相同。LessPass 有点不同,因为它专注于成为无状态密码管理器。这意味着它根据主密码、网站和用户名生成密码,而不是保存加密的密码。另一方面,KeePass 是一个基于文件的密码管理器,它的插件和应用具有很大的灵活性。

这三个应用中的每一个都有其自身的缺点。Bitwarden 将所有东西保存在一个地方,并通过其 API 和网站接口暴露给网络。LessPass 无法保存自定义密码,因为它是无状态的,因此你需要使用它生成的密码。KeePass 是一个基于文件的密码管理器,因此无法在设备之间轻松同步。你可以使用云存储和 WebDAV 来解决此问题,但是有许多客户端不支持它,如果设备无法正确同步,你可能会遇到文件冲突。

本文重点介绍 Bitwarden。

运行非官方的 Bitwarden 实现

有一个名为 bitwarden\_rs 的服务器及其 API 的社区实现。这个实现是完全开源的,因为它可以使用 SQLite 或 MariaDB/MySQL,而不是官方服务器使用的专有 Microsoft SQL Server。

有一点重要的是要认识到官方和非官方版本之间存在一些差异。例如,官方服务器已经由第三方审核,而非官方服务器还没有。在实现方面,非官方版本缺少电子邮件确认和采用 Duo 或邮件码的双因素身份验证

让我们在 SELinux 中运行服务器。根据 bitwarden\_rs 的文档,你可以如下构建一个 Podman 命令:

$ podman run -d \
 --userns=keep-id \
 --name bitwarden \
 -e SIGNUPS_ALLOWED=false \
 -e ROCKET_PORT=8080 \
 -v /home/egustavs/Bitwarden/bw-data/:/data/:Z \
 -p 8080:8080 \
 bitwardenrs/server:latest

这将下载 bitwarden\_rs 镜像并在用户命名空间下的用户容器中运行它。它使用 1024 以上的端口,以便非 root 用户可以绑定它。它还使用 :Z 更改卷的 SELinux 上下文,以防止在 /data 中的读写权限问题。

如果你在某个域下托管它,建议将此服务器放在 Apache 或 Nginx 的反向代理下。这样,你可以使用 80 和 443 端口指向容器的 8080 端口,而无需以 root 身份运行容器。

在 systemd 下运行

Bitwarden 现在运行了,你可能希望保持这种状态。接下来,创建一个使容器保持运行的单元文件,如果它没有响应则自动重新启动,并在系统重启后开始运行。创建文件 /etc/systemd/system/bitwarden.service

[Unit]
Description=Bitwarden Podman container
Wants=syslog.service

[Service]
User=egustavs
Group=egustavs
TimeoutStartSec=0
ExecStart=/usr/bin/podman run 'bitwarden'
ExecStop=-/usr/bin/podman stop -t 10 'bitwarden'
Restart=always
RestartSec=30s
KillMode=none

[Install]
WantedBy=multi-user.target

现在使用 sudo 启用并启动该服务:

$ sudo systemctl enable bitwarden.service && sudo systemctl start bitwarden.service
$ systemctl status bitwarden.service
bitwarden.service - Bitwarden Podman container
    Loaded: loaded (/etc/systemd/system/bitwarden.service; enabled; vendor preset: disabled)
    Active: active (running) since Tue 2019-07-09 20:23:16 UTC; 1 day 14h ago
  Main PID: 14861 (podman)
     Tasks: 44 (limit: 4696)
    Memory: 463.4M

成功了!Bitwarden 现在运行了并将继续运行。

添加 LetsEncrypt

如果你有域名,强烈建议你使用类似 LetsEncrypt 的加密证书运行你的 Bitwarden 实例。Certbot 是一个为我们创建 LetsEncrypt 证书的机器人,这里有个在 Fedora 中操作的指南

生成证书后,你可以按照 bitwarden\_rs 指南中关于 HTTPS 的部分来。只要记得将 :Z 附加到 LetsEncrypt 来处理权限,而不用更改端口。


照片由 CMDR Shane 拍摄,发表在 Unsplash 上。


via: https://fedoramagazine.org/manage-your-passwords-with-bitwarden-and-podman/

作者:Eric Gustavsson 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Quick News

微软正在考虑放弃其 Windows 密码过期策略

微软考虑在 Windows 废除要求用户定期更改其登录密码的策略,以让用户养成使用更加鲁棒的密码。微软表示,现有的密码更改政策是“非常低价值的古老而过时的缓解”,该公司不“觉得它有用”。

定期密码到期只是针对密码(或散列)在其有效时间内被盗并且被未经授权使用的概率而制定的策略。如果密码永远不会被盗,则无需使密码过期。如果你有证据证明密码被盗,你应该立即采取行动,而不是等待到期以解决问题。【TechCrunch】

Godaddy 关闭了超过了 15000 个 Spam 子域名

Godaddy 和 安全公司 Palo Alto Networks 联合,处理了超过 15000 个子域名,这些子域名过去被用于虚假营销。【Wired】

微软将比我们想象的更快在 macOS 上发布基于 Chrome 内核的 Edge

根据德国媒体 Windows United 报道,在 Windows 2016 上访问新的 Edge 浏览器的官网时,会提醒暂时不支持该系统,并提示目前仅支持 Windows 和 macOS ,由此推断出微软应该很快放出 macOS 下基于 Chrome 内核的 Edge 浏览器。【Windows United】

AWS 进入香港云计算市场

亚马逊在本周四开放了新的 Region —— 香港 ,从今天开始,用户可以使用 AWS 的香港服务。【ZDNet】

除了阿里云的香港、腾讯云的香港,目前我们在香港云服务器上有了新的选择。对于国内开发者来说,是一大利好。

英国国家网络安全中心(NCSC)发布了一份列表,列出了数据泄露中出现的 100000 个最常见的密码,以鼓励用户选择强密码。到目前为止,数据泄露中显示的最常用密码是 “123456”,有 2320 万个帐户使用此密码。另外,全世界有 770 万用户选择使用 “123456789” 作为密码。

紧接着排名靠前的三个密码均被超过 300 万用户使用:“qwerty” 出现 3.8 万次,“password” 出现 3.6 万次,“111111” 出现 310 万次。

许多常用的密码都是由一系列简单的数字构成,或将相同数字重复六到七次。

“iloveyou”、“monkey” 和 “dragon” 也排在最常用密码的前 20 位。

此外,成千上万的用户只使用一个名称作为密码。每年有超过 400,000 名用户使用 “ashley”、“michael” 和 “daniel”;“jessica” 和 “charlie” 各被使用超过 300,000 次。

这些可能是用户自己的名字,这意味着如果黑客获取了一个电子邮件地址而没有密码,那么使用受害者的名字来破解它可能会令人大开眼界。

当用户选择简单密码时,乐队也是一个常见的主题。密码列表详细说明 285,706 用户选择 “blink182” 作为他们的密码——这使得 pop-punk 乐队成为最常用的音乐相关密码。“50cent”、“enimem”、“metallica” 和 “slipknot” 都被使用了超过 140,000 次。

球队也是一大密码主题。“Liverpool” 在密码中赢得了最常用的英超足球队冠军头衔。其余最常遭泄露的此类密码分别为 “chelsea”、“arsenal”、“manutd” 和 “everton”。

使用自己喜欢的球队作为密码的人很容易发现自己是黑客攻击的受害者——许多体育迷会在社交媒体上谈论他们最喜欢的球队,因此对于网络犯罪分子来说,在社交媒体上寻找这些信息以破解帐户可能相对简单。

对此,NCSC 技术总监 Ian Levy 博士给出建议:

密码重用是一个可以避免的主要风险,没有人应该用可以猜到的东西保护敏感数据,比如他们的名字、当地足球队或最喜欢的乐队。

使用难以猜测的密码是一个强有力的第一步。我们建议结合三个随机但令人难忘的单词,这样人们就无法猜出你的密码。

来源:开源中国

更多资讯

AV-TEST 反病毒测试表明:Google Play Protect让人失望

近日,知名安全评测机构 AV-TEST 对 19 款面向移动平台的防病毒解决方案进行了测试。结果发现,谷歌官方的 Google Play Protect,无法做到完全让人信赖。本轮测试对 19 款 Android 安全软件的防护、可用性、功能性进行了综合评估,满分分别为 6 分、6 分、以及 1 分。

来源: cnBeta.COM

详情: http://t.cn/EaxuJCK

Google 故意破坏竞争对手的浏览器?

前 Firefox 副总裁 Johnathan Nightingale 早些时候公开指责 Google 通过各种动作破坏 Firefox。他的故事引起了很多人的共鸣。Nightingale 不是第一个提出此类指控的 Firefox 团队成员。去年 Mozilla 的技术项目经理 Chris Peterson 指责 Google 让 YouTube 在 Edge 和 Firefox 上加载缓慢。

来源: solidot.org

详情: http://t.cn/EaxuaZV

B 站网站后台工程源码疑似泄露 内含部分用户名密码

4 月 22 日消息,据微博@互联网的那点事 爆料称,哔哩哔哩(B 站)整个网站后台工程源码泄露,并且“不少用户名密码被硬编码在代码里面,谁都可以用。”新浪科技在 GitHub 上查询后发现,平台上确实存在由一个名叫“openbilibili”的用户创建的“go-common”代码库。截至发稿时,该项目已获得 6597 个星标和 6050 个代码库分支。

来源: 新浪科技

详情: http://t.cn/EaxuKYB

(信息来源于网络,安华金和搜集整理)

虽然 Linux 的设计是安全的,但还是存在许多安全漏洞的风险,弱密码就是其中之一。作为系统管理员,你必须为用户提供一个强密码。因为大部分的系统漏洞就是由于弱密码而引发的。本教程描述了在基于 DEB 系统的 Linux,比如 Debian、Ubuntu、Linux Mint 等和基于 RPM 系统的 Linux,比如 RHEL、CentOS、Scientific Linux 等的系统下设置像密码长度密码复杂度密码有效期等密码策略。

在基于 DEB 的系统中设置密码长度

默认情况下,所有的 Linux 操作系统要求用户密码长度最少 6 个字符。我强烈建议不要低于这个限制。并且不要使用你的真实名称、父母、配偶、孩子的名字,或者你的生日作为密码。即便是一个黑客新手,也可以很快地破解这类密码。一个好的密码必须是至少 6 个字符,并且包含数字、大写字母和特殊符号。

通常地,在基于 DEB 的操作系统中,密码和身份认证相关的配置文件被存储在 /etc/pam.d/ 目录中。

设置最小密码长度,编辑 /etc/pam.d/common-password 文件;

$ sudo nano /etc/pam.d/common-password

找到下面这行:

password [success=2 default=ignore] pam_unix.so obscure sha512

在末尾添加额外的文字:minlen=8。在这里我设置的最小密码长度为 8

password [success=2 default=ignore] pam_unix.so obscure sha512 minlen=8

保存并关闭该文件。这样一来,用户现在不能设置小于 8 个字符的密码。

在基于 RPM 的系统中设置密码长度

在 RHEL、CentOS、Scientific Linux 7.x 系统中, 以 root 身份执行下面的命令来设置密码长度。

# authconfig --passminlen=8 --update

查看最小密码长度,执行:

# grep "^minlen" /etc/security/pwquality.conf

输出样例:

minlen = 8

在 RHEL、CentOS、Scientific Linux 6.x 系统中,编辑 /etc/pam.d/system-auth 文件:

# nano /etc/pam.d/system-auth

找到下面这行并在该行末尾添加:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8

如上设置中,最小密码长度是 8 个字符。

在基于 DEB 的系统中设置密码复杂度

此设置会强制要求密码中应该包含多少类型,比如大写字母、小写字母和其他字符。

首先,用下面命令安装密码质量检测库:

$ sudo apt-get install libpam-pwquality

之后,编辑 /etc/pam.d/common-password 文件:

$ sudo nano /etc/pam.d/common-password

为了设置密码中至少有一个大写字母,则在下面这行的末尾添加文字 ucredit=-1

password requisite pam_pwquality.so retry=3 ucredit=-1

设置密码中至少有一个小写字母,如下所示。

password requisite pam_pwquality.so retry=3 lcredit=-1

设置密码中至少含有其他字符,如下所示。

password requisite pam_pwquality.so retry=3 ocredit=-1

正如你在上面样例中看到的一样,我们设置了密码中至少含有一个大写字母、一个小写字母和一个特殊字符。你可以设置被最大允许的任意数量的大写字母、小写字母和特殊字符。

你还可以设置密码中被允许的字符类的最大或最小数量。

下面的例子展示了设置一个新密码中被要求的字符类的最小数量:

password requisite pam_pwquality.so retry=3 minclass=2

在基于 RPM 的系统中设置密码复杂度

在 RHEL 7.x / CentOS 7.x / Scientific Linux 7.x 中:

设置密码中至少有一个小写字母,执行:

# authconfig --enablereqlower --update

查看该设置,执行:

# grep "^lcredit" /etc/security/pwquality.conf

输出样例:

lcredit = -1

类似地,使用以下命令去设置密码中至少有一个大写字母:

# authconfig --enablerequpper --update

查看该设置:

# grep "^ucredit" /etc/security/pwquality.conf

输出样例:

ucredit = -1

设置密码中至少有一个数字,执行:

# authconfig --enablereqdigit --update

查看该设置,执行:

# grep "^dcredit" /etc/security/pwquality.conf

输出样例:

dcredit = -1

设置密码中至少含有一个其他字符,执行:

# authconfig --enablereqother --update

查看该设置,执行:

# grep "^ocredit" /etc/security/pwquality.conf

输出样例:

ocredit = -1

RHEL 6.x / CentOS 6.x / Scientific Linux 6.x systems 中,以 root 身份编辑 /etc/pam.d/system-auth 文件:

# nano /etc/pam.d/system-auth

找到下面这行并且在该行末尾添加:

password requisite pam_cracklib.so try_first_pass retry=3 type= minlen=8 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1

如上设置中,密码必须要至少包含 8 个字符。另外,密码必须至少包含一个大写字母、一个小写字母、一个数字和一个其他字符。

在基于 DEB 的系统中设置密码有效期

现在,我们将要设置下面的策略。

  1. 密码被使用的最长天数。
  2. 密码更改允许的最小间隔天数。
  3. 密码到期之前发出警告的天数。

设置这些策略,编辑:

$ sudo nano /etc/login.defs

在你的每个需求后设置值。

PASS_MAX_DAYS 100
PASS_MIN_DAYS 0
PASS_WARN_AGE 7

正如你在上面样例中看到的一样,用户应该每 100 天修改一次密码,并且密码到期之前的 7 天开始出现警告信息。

请注意,这些设置将会在新创建的用户中有效。

为已存在的用户设置修改密码的最大间隔天数,你必须要运行下面的命令:

$ sudo chage -M <days> <username>

设置修改密码的最小间隔天数,执行:

$ sudo chage -m <days> <username>

设置密码到期之前的警告,执行:

$ sudo chage -W <days> <username>

显示已存在用户的密码,执行:

$ sudo chage -l sk

这里,sk 是我的用户名。

输出样例:

Last password change : Feb 24, 2017
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

正如你在上面看到的输出一样,该密码是无限期的。

修改已存在用户的密码有效期,

$ sudo chage -E 24/06/2018 -m 5 -M 90 -I 10 -W 10 sk

上面的命令将会设置用户 sk 的密码期限是 24/06/2018。并且修改密码的最小间隔时间为 5 天,最大间隔时间为 90 天。用户账号将会在 10 天后被自动锁定,而且在到期之前的 10 天前显示警告信息。

在基于 RPM 的系统中设置密码效期

这点和基于 DEB 的系统是相同的。

在基于 DEB 的系统中禁止使用近期使用过的密码

你可以限制用户去设置一个已经使用过的密码。通俗的讲,就是说用户不能再次使用相同的密码。

为设置这一点,编辑 /etc/pam.d/common-password 文件:

$ sudo nano /etc/pam.d/common-password

找到下面这行并且在末尾添加文字 remember=5

password        [success=2 default=ignore]      pam_unix.so obscure use_authtok try_first_pass sha512 remember=5

上面的策略将会阻止用户去使用最近使用过的 5 个密码。

在基于 RPM 的系统中禁止使用近期使用过的密码

这点对于 RHEL 6.x 和 RHEL 7.x 和它们的衍生系统 CentOS、Scientific Linux 是相同的。

以 root 身份编辑 /etc/pam.d/system-auth 文件,

# vi /etc/pam.d/system-auth

找到下面这行,并且在末尾添加文字 remember=5

password     sufficient     pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

现在你了解了 Linux 中的密码策略,以及如何在基于 DEB 和 RPM 的系统中设置不同的密码策略。

就这样,我很快会在这里发表另外一天有趣而且有用的文章。在此之前请保持关注。如果您觉得本教程对你有帮助,请在您的社交,专业网络上分享并支持我们。


via: https://www.ostechnix.com/how-to-set-password-policies-in-linux/

作者:SK 选题:lujun9972 译者:liujing97 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

最近我们在网站上发表过一篇关于 检查密码复杂性/强度和评分 的文章。它可以帮助你检查你的密码的强度和评分。

我们可以手工创建我们需要的密码。但如果你想要为多个用户或服务器生成密码,解决方案是什么呢?

是的,Linux 中有许多可用的工具能满足这个需求。本文中我将会介绍五种最好的密码生成器。

这些工具可以为你生成高强度随机密码。如果你想要为多个用户和服务器更新密码,请继续读下去。

这些工具易于使用,这也是我喜欢用它们的原因。默认情况下它们会生成一个足够健壮的密码,你也可以通过使用其他可用的选项来生成一个超强的密码。

它会帮助你生成符合下列要求的超强密码。密码长度至少有 12-15 个字符,包括字母(大写及小写),数字及特殊符号。

工具如下:

  • pwgen:生成易于人类记忆并且尽可能安全的密码。
  • openssl:是一个用来从 shell 中调用 OpenSSL 加密库提供的多种密码学函数的命令行工具。
  • gpg:OpenPGP 加密/签名工具。
  • mkpasswd:生成新密码,可以选择直接设置给一名用户。
  • makepasswd:使用 /dev/urandom 生成真随机密码,比起好记它更重视安全性。
  • /dev/urandom 文件:两个特殊的字符文件 /dev/random/dev/urandom (自 Linux 1.3.30 起出现)提供了内核随机数生成器的接口。
  • md5sum:是一个用来计算及校验 128 位 MD5 哈希的程序。
  • sha256sum:被设计用来使用 SHA-256 算法(SHA-2 系列,摘要长度为 256 位)校验数据完整性。
  • sha1pass:生成一个 SHA1 密码哈希。在命令缺少盐值的情况下,将会生成一个随机的盐值向量。

怎么用 pwgen 命令在 linux 下生成一个随机的强壮密码?

pwgen 程序生成易于人类记忆并且尽可能安全的密码。

易于人类记忆的密码永远都不会像完全随机的密码一样安全。

使用 -s 选项来生成完全随机,难于记忆的密码。由于我们记不住,这些密码应该只用于机器。

在 Fedora 系统中,使用 DNF 命令 来安装 pwgen

$ sudo dnf install pwgen

在 Debian/Ubuntu 系统中,使用 APT-GET 命令APT 命令 来安装 pwgen

$ sudo apt install pwgen

在 Arch Linux 系统中,使用 Pacman 命令 来安装 pwgen

$ sudo pacman -S pwgen

在 RHEL/CentOS 系统中,使用 YUM 命令 来安装 pwgen

$ sudo yum install pwgen

在 openSUSE Leap 系统中,使用 Zypper 命令 来安装 pwgen

$ sudo zypper install pwgen

在 Linux 下如何使用 pwgen 命令?

使用方法非常简单直接。使用下列示例中更适合你的那种。默认情况下,它会生成一个方便记忆的密码。

想要这样做,只要在你的终端中运行 pwgen 命令。将会一下生成160个密码以8列20行打印出来。

$ pwgen
ameiK2oo aibi3Cha EPium0Ie aisoh1Ee Nidee9ae uNga0Bee uPh9ieM1 ahn1ooNg
oc5ooTea tai7eKid tae2yieS hiecaiR8 wohY2Ohk Uab2maed heC4aXoh Ob6Nieso
Shaeriu3 uy9Juk5u hoht7Doo Fah6yah3 faz9Jeew eKiek4ju as0Xuosh Eiwo4epo
oot8teeZ Ui1yoohi Aechae7A Ohdi2ael cae5Thoh Au1aeTei ais0aiC2 Cai2quin
Oox9ohz4 neev0Che ahza8AQu Ahz7eica meiBeeW0 Av3bo7ah quoiTu3f taeNg3ae
Aiko7Aiz SheiGh8E aesaeSh7 haet6Loo AeTel3oN Ath7zeer IeYah4ie UG3ootha
Ohch9Och Phuap6su iel5Xu7s diqui7Bu ieF2dier eeluHa1u Thagei0i Ceeth3oh
OCei1ahj zei2aiYo Jahgh1ia ooqu1Cej eez2aiPo Wahd5soo noo7Mei9 Hie5ashe
Uith4Or2 Xie3uh2b fuF9Eilu eiN2sha9 zae2YaSh oGh5ephi ohvao4Ae aixu6aeM
fo4Ierah iephei6A hae9eeGa eiBeiY3g Aic8Kee9 he8AheCh ohM4bid9 eemae3Zu
eesh2EiM cheiGa4j PooV2vii ahpeeg5E aezauX2c Xe7aethu Ahvaph7a Joh2heec
Ii5EeShi aij7Uo8e ooy2Ahth mieKe2ni eiQuu8fe giedaQu0 eiPhob3E oox1uo2U
eehia4Hu ga9Ahw0a ohxuZei7 eV4OoXio Kid2wu1n ku4Ahf5s uigh8uQu AhWoh0po
vo1Eeb2u Ahth7ve5 ieje4eiL ieci1Ach Meephie9 iephieY8 Eesoom7u eakai2Bo
uo8Ieche Zai3aev5 aGhahf0E Wowoo5th Oraeb0ah Gah3nah0 ieGhah0p aeCh0OhJ
ahQu2feZ ahQu0gah foik7Ush cei1Wai1 Aivi3ooY eephei5U MooZae3O quooRoh7
aequae5U pae6Ceiv eizahF1k ohmi7ETa ahyaeK1N Mohw2no8 ooc8Oone coo7Ieve
eePhei9h Weequ8eV Vie4iezu neeMiim4 ie6aiZoh Queegh2E shahwi3N Inichie8
Sid1aeji mohj4Ko7 lieDi0pe Zeemah6a thuevu2E phi4Ohsh paiKeix1 ooz1Ceph
ahV4yore ue2laePh fu1eThui qui7aePh Fahth1nu ohk9puLo aiBeez0b Neengai5

生成安全的随机密码,使用 pwgen 命令的 -s 选项。

$ pwgen -s
CU75lgZd 7HzzKgtA 2ktBJDpR F6XJVhBs UjAm3bNL zO7Dw7JJ pxn8fUvp Ka3lLilG
ywJX7iJl D9ajxb6N 78c1HOg2 g8vtWCra Jp6pBGBw oYuev9Vl gbA6gHV8 G6XQoVO5
uQN98IU4 50GgQfrX FrTsou2t YQorO4x6 UGer8Yi2 O7DB5nw1 1ax370UR 1xVRPkA1
RVaGDr2i Nt11ekUd 9Vm3D244 ck8Lnpd0 SjDt8uWn 5ERT4tf8 4EONFzyY Jc6T83jg
WZa6bKPW H4HMo1YU bsDDRik3 gBwV7LOW 9H1QRQ4x 3Ak7RcSe IJu2RBF9 e508xrLC
SzTrW191 AslxDa6E IkWWov2b iOb6EmTy qHt82OwG 5ZFO7B53 97zmjOPu A4KZuhYV
uQpoJR4D 0eKyOiUr Rz96smeO 3HTABu3N 6W0VmEls uPsp5zpw 8UD3VkMG YTct6Rd4
VKo0cVmq E07ZX7j9 kQSlvA69 Nm3fpv3i xWvF2xMu yEfcw8uA oQGVX3l9 grTzx7Xj
s4GVEYtM uJl5sYMe n3icRPiY ED3Mup4B k3M9KHI7 IkxqoSM0 dt2cxmMU yb2tUkut
2Q9wGZQx 8Rpo11s9 I13siOHu 7GV64Fjv 3VONzD8i SCDfVD3F oiPTx239 6BQakoiJ
XUEokiC4 ybL7VGmL el2RfvWk zKc7CLcE 3FqNBSyA NjDWrvZ5 KI3NSX4h VFyo6VPr
h4q3XeqZ FDYMoX6f uTU5ZzU3 6u4ob4Ep wiYPt05n CZga66qh upzH6Z9y RuVcqbe8
taQv11hq 1xsY67a8 EVo9GLXA FCaDLGb1 bZyh0YN8 0nTKo0Qy RRVUwn9t DuU8mwwv
x96LWpCb tFLz3fBG dNb4gCKf n6VYcOiH 1ep6QYFZ x8kaJtrY 56PDWuW6 1R0If4kV
2XK0NLQK 4XQqhycl Ip08cn6c Bnx9z2Bz 7gjGlON7 CJxLR1U4 mqMwir3j ovGXWu0z
MfDjk5m8 4KwM9SAN oz0fZ5eo 5m8iRtco oP5BpLh0 Z5kvwr1W f34O2O43 hXao1Sp8
tKoG5VNI f13fuYvm BQQn8MD3 bmFSf6Mf Z4Y0o17U jT4wO1DG cz2clBES Lr4B3qIY
ArKQRND6 8xnh4oIs nayiK2zG yWvQCV3v AFPlHSB8 zfx5bnaL t5lFbenk F2dIeBr4
C6RqDQMy gKt28c9O ZCi0tQKE 0Ekdjh3P ox2vWOMI 14XF4gwc nYA0L6tV rRN3lekn
lmwZNjz1 4ovmJAr7 shPl9o5f FFsuNwj0 F2eVkqGi 7gw277RZ nYE7gCLl JDn05S5N

假设你想要生成 5 个 14 字符长的密码,方法如下:

$ pwgen -s 14 5
7YxUwDyfxGVTYD em2NT6FceXjPfT u8jlrljbrclcTi IruIX3Xu0TFXRr X8M9cB6wKNot1e

如果你真的想要生成 20 个超强随机密码,方法如下:

$ pwgen -cnys 14 20
mQ3E=vfGfZ,5[B #zmj{i5|ZS){jg Ht_8i7OqJ%N`~2 443fa5iJ\W-L?] ?Qs$o=vz2vgQBR
^'Ry0Az|J9p2+0 t2oA/n7U_'|QRx EsX*%_(4./QCRJ ACr-,8yF9&eM[* !Xz1C'bw?tv50o
8hfv-fK(VxwQGS q!qj?sD7Xmkb7^ N#Zp\_Y2kr%!)~ 4*pwYs{bq]Hh&Y |4u=-Q1!jS~8=;
]{$N#FPX1L2B{h I|01fcK.z?QTz" l~]JD_,W%5bp.E +i2=D3;BQ}p+$I n.a3,.D3VQ3~&i

如何在 Linux 下使用 openssl 命令生成随机强密码?

openssl 是一个用来从 shell 中调用 OpenSSL 加密库提供的多种密码学函数的命令行工具。

像下面这样运行 openssl 命令可以生成一个 14 字符长的随机强密码。

$ openssl rand -base64 14
WjzyDqdkWf3e53tJw/c=

如果你想要生成 10 个 14 字符长的随机强密码,将 openssl 命令与 for 循环结合起来使用。

$ for pw in {1..10}; do openssl rand -base64 14; done
6i0hgHDBi3ohZ9Mil8I=
gtn+y1bVFJFanpJqWaA=
rYu+wy+0nwLf5lk7TBA=
xrdNGykIzxaKDiLF2Bw=
cltejRkDPdFPC/zI0Pg=
G6aroK6d4xVVYFTrZGs=
jJEnFoOk1+UTSx/wJrY=
TFxVjBmLx9aivXB3yxE=
oQtOLPwTuO8df7dIv9I=
ktpBpCSQFOD+5kIIe7Y=

如何在 Linux 下使用 gpg 命令生成随机强密码?

gpg 是 Gnu Privacy Guard (GnuPG) 中的 OpenPGP 实现部分。它是一个提供 OpenPGP 标准的数字加密与签名服务的工具。gpg 具有完整的密钥管理功能和其他完整 OpenPGP 实现应该具备的全部功能。

下面这样执行 gpg 命令来生成一个 14 字符长的随机强密码。

$ gpg --gen-random --armor 1 14
or
$ gpg2 --gen-random --armor 1 14
jq1mtY4gBa6gIuJrggM=

如果想要使用 gpg 生成 10 个 14 字符长的随机强密码,像下面这样使用 for 循环。

$ for pw in {1..10}; do gpg --gen-random --armor 1 14; done
or
$ for pw in {1..10}; do gpg2 --gen-random --armor 1 14; done
F5ZzLSUMet2kefG6Ssc=
8hh7BFNs8Qu0cnrvHrY=
B+PEt28CosR5xO05/sQ=
m21bfx6UG1cBDzVGKcE=
wALosRXnBgmOC6+++xU=
TGpjT5xRxo/zFq/lNeg=
ggsKxVgpB/3aSOY15W4=
iUlezWxL626CPc9omTI=
pYb7xQwI1NTlM2rxaCg=
eJjhtA6oHhBrUpLY4fM=

如何在 Linux 下使用 mkpasswd 命令生成随机强密码?

mkpasswd 生成密码并可以自动将其为用户设置。不加任何参数的情况下,mkpasswd 返回一个新的密码。它是 expect 软件包的一部分,所以想要使用 mkpasswd 命令,你需要安装 expect 软件包。

在 Fedora 系统中,使用 DNF 命令 来安装 mkpasswd

$ sudo dnf install expect

在 Debian/Ubuntu 系统中,使用 APT-GET 命令APT 命令 来安装 mkpasswd

$ sudo apt install expect

在 Arch Linux 系统中,使用 Pacman 命令 来安装 mkpasswd

$ sudo pacman -S expect

在 RHEL/CentOS 系统中,使用 YUM 命令 来安装 mkpasswd

$ sudo yum install expect

在 openSUSE Leap 系统中,使用 Zypper 命令 来安装 mkpasswd

$ sudo zypper install expect

在终端中执行 mkpasswd 命令来生成一个随机密码。

$ mkpasswd
37_slQepD

像下面这样执行 mkpasswd 命令可以生成一个 14 字符长的随机强密码。

$ mkpasswd -l 14
W1qP1uv=lhghgh

像下面这样执行 mkpasswd 命令 来生成一个 14 字符长,包含大小写字母、数字和特殊字符的随机强密码。

$ mkpasswd -l 14 -d 3 -C 3 -s 3
3aad!bMWG49"t,

如果你想要生成 10 个 14 字符长的随机强密码(包括大小写字母、数字和特殊字符),使用 for 循环和 mkpasswd 命令。

$ for pw in {1..10}; do mkpasswd -l 14 -d 3 -C 3 -s 3; done
zmSwP[q9;P1r6[
E42zcvzM"i3%B\
8}1#[email protected]
0X:zB(mmU22?nj
0sqqL44M}ko(O^
43tQ(.6jG;ceRq
-jB6cp3x1GZ$e=
$of?Rj9kb2N(1J
9HCf,nn#gjO79^
Tu9m56+Ev_Yso(

如何在 Linux 下使用 makepasswd 命令生成随机强密码?

makepasswd 使用 /dev/urandom 生成真随机密码,与易于记忆相比它更注重安全性。它也可以加密命令行中给出的明文密码。

在终端中执行 makepasswd 命令来生成一个随机密码。

$ makepasswd
HdCJafVaN

在终端中像下面这样执行 makepasswd 命令来生成 14 字符长的随机强密码。

$ makepasswd --chars 14
HxJDv5quavrqmU

像下面这样执行 makepasswd 来生成 10 个 14 字符长的随机强密码。

$ makepasswd --chars 14 --count 10
TqmKVWnRGeoVNr
mPV2P98hLRUsai
MhMXPwyzYi2RLo
dxMGgLmoFpYivi
8p0G7JvJjd6qUP
7SmX95MiJcQauV
KWzrh5npAjvNmL
oHPKdq1uA9tU85
V1su9GjU2oIGiQ
M2TMCEoahzLNYC

如何在 Linux 系统中使用多个命令生成随机强密码?

如果你还在寻找其他的方案,下面的工具也可以用来在 Linux 中生成随机密码。

使用 md5sum:它是一个用来计算及校验 128 位 MD5 哈希的程序。

$ date | md5sum
9baf96fb6e8cbd99601d97a5c3acc2c4 -

使用 /dev/urandom: 两个特殊的字符文件 /dev/random/dev/urandom (自 Linux 1.3.30 起出现)提供了内核随机数生成器的接口。/dev/random 的主设备号为 1,次设备号为 8。/dev/urandom 主设备号为 1,次设备号为 9。

$ cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 14
15LQB9J84Btnzz

使用 sha256sum:它被设计用来使用 SHA-256 算法(SHA-2 系列,摘要长度为 256 位)校验数据完整性。

$ date | sha256sum
a114ae5c458ae0d366e1b673d558d921bb937e568d9329b525cf32290478826a -

使用 sha1pass:它生成一个 SHA1 密码哈希。在命令缺少盐值的情况下,将会生成一个随机的盐值向量。

$ sha1pass
$4$9+JvykOv$e7U0jMJL2yBOL+RVa2Eke8SETEo$

via: https://www.2daygeek.com/5-ways-to-generate-a-random-strong-password-in-linux-terminal/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:leommx 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出