For the complete documentation index, see llms.txt. This page is also available as Markdown.

SSH 代理

Bitwarden Password Manager 桌面 App 可以作为 SSH 代理来安全地加密和存储您的 SSH(安全 Shell)密钥,以用于以下目的:

  • 对服务进行身份验证

  • 签署 Git 提交

  • 与基于 SSH 的服务进行交互

有关代理的工作原理、支持的密钥类型、已知限制以及密码库行为的更多信息,请参阅关于 SSH

启用 SSH 代理

要在 Bitwarden 桌面 App 上启用 SSH 代理,请导航至设置然后选中启用 SSH 代理。然后,调整使用 SSH 代理时要求身份验证设置。该设置将决定 Bitwarden 何时要求验证对 SSH 密钥的访问权限:

在桌面客户端上启用 SSH 存储

根据密码库状态的行为

SSH 代理的行为会根据密码库的当前状态而有所不同。以下描述的是启用代理后单账户的行为。

密码库状态
代理运行中
列出请求
签署请求

已注销

已锁定(初始解锁前)

支持

提示解锁密码库

已锁定(初始解锁后)

支持

提示解锁密码库,然后提示授权

已解锁

支持

支持

配置您的系统以使用 Bitwarden SSH 代理

要将 Bitwarden 用作您的主要 SSH 代理,您需要配置 SSH 客户端,使其与 Bitwarden 进行通信以完成身份验证。在桌面 App 中启用代理后,请配置您的操作系统,将 SSH 请求路由到 Bitwarden:

要在 Windows 上启用 Bitwarden SSH 代理,必须禁用 Windows 机器上的 OpenSSH 服务。要禁用 OpenSSH:

1、在 Windows 机器上,导航至服务OpenSSH Authentication Agent。可使用 Windows 搜索栏查找服务。

Windows 服务面板

2、打开 OpenSSH Authentication Agent 属性窗口后,将启动类型设置设为禁用

禁用 OpenSSH 窗口

3、调整设置后,选择应用,然后选择确定

要在 macOS 商店下载上启用 Bitwarden SSH 代理:

1、配置 SSH_AUTH_SOCK 变量,使其指向 Bitwarden SSH 代理套接字。在下面的示例中,将 <user> 替换为您的用户名:

2、要使此配置持久生效,请将 export 命令添加到您的 ~/.zhrc~/.bashrc 文件中。

要在 macOS .dmg 下载上启用 Bitwarden SSH 代理:

1、配置 SSH_AUTH_SOCK 变量,使其指向 Bitwarden SSH 代理套接字。在下面的示例中,将 <user> 替换为您的用户名:

2、或者,配置 SSH_AUTH_SOCKET

3、要使此配置持久生效,请将 export 命令添加到您的 ~/.zhrc~/.bashrc 文件中。

使用 launchctl 命令后,您可能需要重启终端。

要在 Linux 上启用 Bitwarden SSH 代理:

1、配置 SSH_AUTH_SOCK 变量,使其指向 Bitwarden SSH 代理套接字。在下面的示例中,将 <user> 替换为您的用户名:

2、要使此配置持久生效,请将 export 命令添加到您的 ~/.zhrc~/.bashrc 文件中。

要在 Snap 和 Flatpak 安装上启用 Bitwarden SSH 代理:

1、配置 SSH_AUTH_SOCK 变量,使其指向 Bitwarden SSH 代理套接字。在下面的示例中,将 <user> 替换为您的用户名:

测试 SSH 代理

为 Bitwarden 配置好 SSH 代理后,我们可以通过请求 SSH 列表来测试设置:

场景与工作流程

代理已启用且操作系统已配置完成后,您就可以在各种工具和工作流程中使用 Bitwarden SSH 密钥了。以下场景将为一系列常见设置和用例提供分步配置指南。

使用 SSH 通过 Git 进行身份验证

SSH 可用于 Git 身份验证。Bitwarden SSH 代理能为您的 Git 工作流增添安全性和易用性。在本示例中,Bitwarden SSH 代理将用于向 GitHub 进行身份验证。

1、在您的 GitHub 账户上,通过导航至设置SSH 和 GPG 密钥,然后选择新建 SSH 密钥,来设置一个 SSH 密钥。

2、在添加新 SSH 密钥界面,添加名称,选择密钥类型,选择 Authentication Key。将 Bitwarden 密码库中的公钥复制并粘贴到 GitHub 上的密钥字段。

创建新的 GitHub 密钥

3、完成所有字段后,选择添加 SSH 密钥以保存密钥。在保存密钥之前,GitHub 会要求您验证您的 GitHub 账户。

4、在终端测试 GitHub SSH 密钥,例如您使用的是 macOS:

5、如果成功,Bitwarden 将提示您验证访问请求。选择授权以确认。如果成功,您将收到一条验证身份验证尝试的消息:

使用 Git 存储库进行身份验证

使用 Bitwarden SSH 代理签署 SSH Git 提交。在使用 Bitwarden SSH 代理签署 Git 提交之前,系统需要满足以下条件:

  • Git 2.34 或更新版本。使用以下命令检查 Git 版本:

  • OpenSSH 8.8 或更新版本。用以下命令检查版本:

  • 启用了 SSH 代理的 Bitwarden 桌面客户端。

为 SSH 签名配置 Git

配置 Git 环境以将签名指向 SSH 密钥。为此,您可以设置全局变量或在您的 .gitconfig 文件中建立相关说明。

设置全局变量

要使用 --global 变量配置 Git 设置:

1、设置 Git 使用 SSH 签名:

2、为用于签名的密钥指定 SSH 密钥。要使用 Bitwarden SSH 代理,请将 <YOUR_PUBLIC_KEY> 替换为从 Bitwarden 密码库中保存的 SSH 密钥中复制的公钥。

3、启用自动提交签名。

设置 .gitconfig 文件

要使用 .gitconfig 文件配置 Git:

1、使用您喜欢的文本编辑器访问 .gitconfig

2、添加以下配置:

对于 Windows 用户:

1、将 core.sshCommand 变量添加到 Git 配置中,以使用 Microsoft OpenSSH:

或者,在 .gitconfig 文件中设置变量:

2、接下来,可能需要设置 gpg.ssh.program 参数:

签署 Git 提交

使用 SSH 对 Git 进行身份验证,能为您的工作流增添安全性和易用性。同样,存储在 Bitwarden 中的 SSH 密钥也可用于使用 SSH 协议签署和验证 Git 提交。在本示例中,我们将使用 Bitwarden SSH 代理签署 Git 提交到 GitHub。

1、在 GitHub 账户上,通过导航至设置SSH 和 GPG 密钥,然后选择新建 SSH 密钥,来设置 SSH 签名密钥。

2、在添加新 SSH 密钥界面,添加名称并选择密钥类型,选择 Signing Key。将 Bitwarden 密钥库中的公钥复制并粘贴到 GitHub 上的密钥字段中。

3、使用以下命令将 git 配置为使用 allowedSignersFile

4、将您的公钥添加到 allowedSignersFile 中:

5、使用 SSH 密钥以 SSH 方式克隆您的存储库:

SSH 克隆

6、使用终端或您喜欢的文本编辑器创建 Git 提交:

7、Bitwarden 将根据用户设置提示您对此密钥的使用进行授权。

使用客户端授权 SSH

8、授权后,将初始化 SSH 密钥以批准提交。现在您可以推送提交:

9、通过导航到 GitHub commits 以验证您在 Github 上的提交。

在 GitHub 中验证您的提交

SSH 代理转发

SSH 代理转发允许您访问的远程服务器使用您的密钥向其他服务器进行身份验证,而不会将您的私钥暴露在密码库之外。您登录的服务器可以请求您的本地 Bitwarden 实例对远程服务器进行身份验证。在本例中,我们将演示在服务器之间传输一个文件:

1、创建新的 SSH 密钥或导入现有的 SSH 密钥到 Bitwarden 桌面 App。

2、打开与要发送文件的服务器的连接,激活代理转发:

3、向服务器发送一个文件:

4、Bitwarden 将提示您批准此 SSH 密钥的访问权限。将显示 SSH 密钥已被请求并用于完成文件传输。

确认 SSH 代理转发

故障排除

以下部分包括用户在使用 SSH 代理时可能遇到的常见问题。

Error connecting to agent: Connection refused

  • 代理未运行;请确认其已正确启用,然后检查 App 日志。

ssh <action> fails

  • 尝试使用 -vvv 运行命令,然后捕获输出以在错误报告中分享。

最后更新于