关于 SSH
Bitwarden SSH 代理是桌面 App 的一项功能,允许您在所有机器上存储、管理和使用 SSH 密钥。桌面 App 可作为操作系统原生 SSH 代理的替代方案,使用密码库而非本地文件系统进行加密密钥存储。
工作原理
SSH 代理启用后,Bitwarden 桌面 App 会暴露一个本地套接字,供您的 SSH 客户端与之通信。诸如 ssh 、git 工具,以及其他依赖 SSH 的应用程序会将签名请求发送给 Bitwarden 代理,而非系统原生代理。Bitwarden 使用您密码库中存储的密钥来处理这些请求,并根据您已配置的设置来提示您验证访问权限。
该代理支持以下操作:
列出密钥
请求签名
代理转发
存储 SSH 密钥
SSH 密钥项目是一种跨 Bitwarden 桌面 App、网页 App、浏览器扩展和移动 App 支持的密码库项目类型。密钥可以通过桌面 App、网页 App 和浏览器扩展生成或导入。
每个 SSH 密钥项目存储以下字段:
密钥名称
密钥的显示名称
私钥
用于身份验证的敏感的密钥内容。
公钥
与服务器或服务共享的密钥的一部分
指纹
从公钥派生的短标识符,用于验证签名提交。
SSH 密钥项目支持与其他密码库项目相同的 Bitwarden 功能,包括文件夹、收藏、主密码二次验证、笔记、克隆项目、附件和自定义字段等。
创建新的 SSH 密钥
要创建新的 SSH 密钥:
1、选择新建按钮,然后选择 SSH 密钥作为项目类型。

2、填写诸如名称等其余详细信息,完成后选择 保存图标。
编辑密钥
要编辑现有的 SSH 密钥,请在您的密码库中找到它然后选择编辑。可编辑的字段包括密钥名称、文件夹、所有者和自定义字段。密钥本身内容在创建后无法修改。
组织 SSH 密钥
SSH 密钥可以创建并存储在组织集合中。具有适当权限的组织成员可以创建、管理和访问组织拥有的 SSH 密钥。解更多有关集合权限的信息。
要将新的共享 SSH 密钥添加到组织密码库:
1、在桌面或网页 App 的密码库视图中,选择 新增按钮,然后选择 SSH 密钥。
2、使用所有者下拉列表,选择您希望该项目所属的组织。
3、使用集合下拉列表,选择要与其共享此项目的集合。
将密钥导入 Bitwarden
Bitwarden 桌面 App 支持 SSH 密钥导入功能。使用 Bitwarden 桌面 App:
1、选择新增按钮,然后选择 SSH 密钥作为项目类型。
2、复制您想要导入到 Bitwarden 的现有 SSH 密钥。
复制时,请包含密钥的头部和尾部,例如
-----BEGIN OPENSSH PRIVATE KEY-----和-----END OPENSSH PRIVATE KEY-----。
3、使用从剪贴板导入密钥图标。这将自动将 SSH 密钥粘贴到 Bitwarden 中。
目前,导入的密钥必须是 OpenSSH 或 PKCS#8 格式。

自动填充 SSH 密钥
SSH 项目的公钥可以通过浏览器扩展自动填充,例如在向 GitHub 或 GitLab 等服务添加公钥时。自动填充有两种方式:
内嵌菜单:当检测到受支持的表单字段时,将显示内嵌菜单,您可以从中选择匹配的 SSH 密钥项目。
自动填充按钮:在浏览器扩展中打开 SSH 项目,然后选择自动填充。
了解更多有关浏览器扩展自动填充方式的信息。
支持的密钥类型
SSH 代理支持以下密钥类型:
Ed25519
RSA(SHA-256 和 SHA-512)
代理限制
Bitwarden SSH 代理目前不支持以下操作。
不支持通过 ssh-add 管理密钥
可供您的代理使用的密钥取决于存储在您密码库中的内容。无法通过 ssh-add <key> 等命令添加、删除或以编程方式限制这些密钥,也无法在 ~/.ssh/config 中进行配置。
不支持按请求选择密钥
当收到签名请求时,代理会依次尝试您密码库中的每个密钥,直到其中一个成功。目前没有机制可以指定某个主机应使用哪个密钥。即使您的密码库中包含正确的密钥,拥有多个密钥也可能导致身份验证失败。作为一种解决方法,您可以在 SSH 配置文件中使用 IdentityFile 指令指定要使用的密钥。
不支持 PuTTYgen 密钥
目前无法将 PuTTYgen 密钥导入 Bitwarden。
多个账户
当桌面 App 中加载了多个账户,并且启用了 SSH 代理时:
每个账户登录时,该账户的密钥都会被加载。
切换账户时,当前活动账户的密钥会被加载。在解锁第二个账户之前,第一个账户的密钥仍然处于活动状态。
注销某个账户后,如果还有其他已登录账户可用,代理会切换为使用剩余已登录账户的密钥。
启用 SSH 代理设置是所有账户共享的全局设置。如果您在一个账户下启用了该代理,然后切换到另一个账户,则会应用上一个活动账户中的该设置。
与原生 SSH 代理共存
如果您在安装 Bitwarden 的同时也安装了原生 SSH 代理,并在本地存储了一些密钥,那么当 Bitwarden 代理不可用或返回失败时,您的 SSH 客户端可能会默认使用原生代理。如果您的授权设置设为从不或记住直到密码库锁定,则不会有任何 UI 交互来指示究竟是哪个代理处理了该请求。
如果您需要将密钥同时存储在本地和 Bitwarden SSH 代理中,请考虑将其放在非标准位置,而不是 ~/.ssh/,以降低意外回退的可能性。
最后更新于