开发者如何使用1Password CLI进行安全密钥管理

开发者如何使用1Password CLI进行安全密钥管理

作为开发者,我们经常处理敏感数据,例如 API 密钥、SSH 凭证、数据库密码和其他机密信息。如何在确保这些数据安全的同时,确保它们能够在不同项目之间轻松访问,并非易事。

1Password 的 CLI 正是为此而生。

1Password 的 CLI

1Password CLI 是一个命令行工具,它允许您在不离开终端的情况下安全地访问和管理您的 1Password 保管库。您无需手动复制粘贴机密信息(这既繁琐又危险),而是可以通过编程方式获取凭证,自动化身份验证工作流程,并将机密信息管理集成到您的开发流程中。

在本文中,我们将探讨如何安装、配置和使用 1Password CLI,以简化您的工作流程,同时确保凭证信息的安全。

入门指南

如果您使用的是 macOS 或 Linux,安装 1Password CLI 最简单的方法是使用 Homebrew

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
brew install 1password-cli
brew install 1password-cli
 brew install 1password-cli

如果您使用的是 Windows,我建议您参考官方 1Password CLI 文档中的安装说明。

对于 Windows 和 Linux 用户,请按照官方 1Password CLI 安装指南进行操作,以获得适合您系统的正确设置。

安装完成后,在 1Password 应用中,前往 Settings… > Developer,然后勾选 Integrate with 1Password CLI

Integrate with 1Password CLI

然后,使用以下命令通过终端登录,并选择您要登录的 1Password 帐户:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
op signin
op signin
op signin

现在,您可以安全地访问和管理密钥,而无需以纯文本形式公开它们。

命令行密钥管理

运行需要身份验证的命令时,手动复制和粘贴凭据既繁琐又不安全。使用 1Password CLI,您可以使用 op read 命令和 Secret References 动态检索 Secret。

要获取 Secret Reference,您可以点击您想要在 1Password 中引用的项目值的下拉箭头。

命令行密钥管理

然后将其传递给需要 Secret 的命令。例如,要使用 DigitalOcean API 令牌通过 doctl 进行身份验证,您可以运行:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
doctl auth init --access-token $(op read op://Internet/d439ada/token)
doctl auth init --access-token $(op read op://Internet/d439ada/token)
doctl auth init --access-token $(op read op://Internet/d439ada/token)

环境变量集成

另一种使用 1Password CLI 的方式是将 Secret 设置为环境变量。这在处理多个 Secret 或需要将它们传递给脚本或程序时非常有用。

如果您使用 Chromatic 测试 UI 组件,可以使用 op read 命令将 CHROMATIC_PROJECT_TOKEN 设置为环境变量:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#!/bin/bash
export NPM_TOKEN=$(op read op://Internet/d439ada/npm_token)
export CHROMATIC_PROJECT_TOKEN=$(op read op://Internet/d439ada/chromatic_token)
// Install the dependencies, including the private ones that require NPM_TOKEN.
npm install
// Chormatic will automatically use the CHROMATIC_PROJECT_TOKEN.
// @see https://www.chromatic.com/docs/cli/#continuous-integration
npx chromatic
#!/bin/bash export NPM_TOKEN=$(op read op://Internet/d439ada/npm_token) export CHROMATIC_PROJECT_TOKEN=$(op read op://Internet/d439ada/chromatic_token) // Install the dependencies, including the private ones that require NPM_TOKEN. npm install // Chormatic will automatically use the CHROMATIC_PROJECT_TOKEN. // @see https://www.chromatic.com/docs/cli/#continuous-integration npx chromatic
#!/bin/bash
export NPM_TOKEN=$(op read op://Internet/d439ada/npm_token)
export CHROMATIC_PROJECT_TOKEN=$(op read op://Internet/d439ada/chromatic_token)

// Install the dependencies, including the private ones that require NPM_TOKEN.
npm install

// Chormatic will automatically use the CHROMATIC_PROJECT_TOKEN.
// @see https://www.chromatic.com/docs/cli/#continuous-integration
npx chromatic

然后,您可以使用 op run 命令运行脚本,如下所示:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
op run -- bash chormatic.sh
op run -- bash chormatic.sh
op run -- bash chormatic.sh

Shell插件扩展

为了更加无缝地使用,您可以使用 Shell 插件将 1Password 与流行的第三方应用集成,例如 Github CLI、 Docker、 DigitalOcean CLI、 AWS、 HuggingFace、 OpenAI 等等。

在本例中,我们将尝试将其与 Github CLI 集成。为此,我们可以运行:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
op plugin init gh
op plugin init gh
 op plugin init gh

系统将提示您将 GitHub 凭据导入 1Password,或选择保存凭据的现有 1Password 项。在本例中,由于我们已经将 GitHub 凭据保存在 1Password 中,因此我们可以选择现有项。

将 GitHub 凭据导入 1Password

然后,它会询问您所选凭据的使用范围。在本例中,我们选择全局使用,以便可以在不同的存储库中使用它。

所选凭据的使用范围

如果这是您第一次安装 Shell 插件,则需要将 source 命令添加到 RC 文件或 Shell 配置文件中,以便在当前终端会话结束后继续保留该插件。例如:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
echo "source /Users/jondoe/.config/op/plugins.sh" >> ~/.zshrc && source ~/.zshrc
echo "source /Users/jondoe/.config/op/plugins.sh" >> ~/.zshrc && source ~/.zshrc
echo "source /Users/jondoe/.config/op/plugins.sh" >> ~/.zshrc && source ~/.zshrc

设置完毕!现在,您可以使用 gh 命令与 GitHub 交互,而无需以纯文本形式暴露您的凭据。要测试,您可以运行 gh auth status

使用 gh 命令与 GitHub 交互

小结

1Password CLI 是一款功能强大的工具,可让您从终端安全地访问和管理您的密钥。只需进行少量设置,即可简化工作流程,并将密钥管理集成到与其他应用的开发流程中,而无需以纯文本形式暴露您的凭据。如果您还没有尝试过,我建议您尝试一下,让您的开发工作流程更加安全高效。

评论留言