gro*_*taj 14
SSH 代理在 KeePassXC 文档中有一个专门的部分。最好通读一遍以大致了解其工作原理。如果你不想,这里有一个总结。
KeePassXC 不能作为成熟的 SSH 代理替代品。相反,它与已运行的 SSH 代理进行通信,并根据需要添加或删除 SSH 密钥。
私钥可以完全存储在 KeePassXC 数据库中。或者,您可以将受密码保护的密钥文件保留在文件系统中,并使用 KeePassXC 使用存储在数据库中的密码自动解锁它们,并将它们插入代理中。
可以根据需要添加和删除密钥,也可以在打开/关闭数据库时自动添加和删除密钥。您还可以设置密钥移除超时并启用每个密钥的确认。
很简约!
此设置的一个主要缺点是在 Windows 上 git 无法与 SSH 代理一起使用。其他操作系统不受影响。请参阅最后有关此问题、其后果和可能的解决方法的专门部分。
添加新条目。按照您的意愿命名。
用户名将用作代理 ( ssh-add -l) 中的密钥名称。如果密钥受密码保护,则该密码将用于解锁密钥。
高级选项卡:如果您希望将私钥存储在数据库中,请将其添加为附件(如果您的数据库已以某种方式共享,则对于在系统之间共享非常有用)。
自动类型选项卡:取消选中为此条目启用自动类型。
SSH 代理选项卡:根据您的喜好配置何时添加和删除密钥。从附件或文件系统中选择您的私钥。
浏览器集成选项卡:选中从浏览器扩展中隐藏此条目。
我在 Pop!_OS 18.04 上对此进行了测试,它是 Ubuntu 的一个密切相关的分支。
此功能大部分应该是开箱即用的,只需在 KeePassXC 设置中启用它即可。
用于ssh-add -l检查您的密钥是否已加载(如果您选择手动添加它们,则可以通过右键单击它们并选择“将密钥添加到 SSH 代理”来执行此操作)。
如果 KeePassXC 作为软件包安装,SSH 代理将不起作用snap。如果snap info keepassxc返回某些内容,则必须删除该snap版本并使用apt. 如果您使用的是 Pop!_OS 并apt安装了比 旧版本snap,请参阅此问题:KeePassXC 未升级到 Pop!_OS 上的最新版本。
答案已在 Windows 10 版本 2004 上测试。
首先,您必须使用 Windows 10 附带的 OpenSSH 客户端。在与代理通信时,它与“裸”OpenSSH 有点不同。确保您已安装 OpenSSH 客户端组件(它是可选的 - 如果您已明确删除它或从旧版本的 Windows 升级,则可能会丢失)。
如果您安装了其他 SSH 客户端(例如 git 附带的客户端),请确保在命令行上使用 Windows 客户端。where ssh-add在窗口中键入内容应作为第一个条目cmd返回。C:\Windows\System32\OpenSSH\ssh-add.exe如果情况并非如此,您必须重新排序您的PATH条目。
您还必须启用代理的服务。打开services.msc并找到OpenSSH Authentication Agent。将其启动类型设置为“自动”,应用并启动它。
不幸的是,21H1 之前的 Windows 10 附带的 SSH 客户端版本存在错误,并且无法使用 RSA 密钥(这已在 21H1 中修补)。如果您运行的 Windows 版本早于 21H1,则必须应用此解决方法:
OpenSSH-Win64.zip 从 GitHub下载最新版本。将其提取到C:\Program Files\OpenSSH-Win64.regedit并转到HKLM\SYSTEM\CurrentControlSet\Services\ssh-agent. 改成ImagePathC:\Program Files\OpenSSH-Win64\ssh-agent.exe现在在 KeePassXC 设置中启用 SSH 代理并选中Use OpenSSH for Windows 而不是 Pageant。
用于ssh-add -l检查您的密钥是否已加载(如果您选择手动添加它们,则可以通过右键单击它们并选择“将密钥添加到 SSH 代理”来执行此操作)。
~/.ssh/config?在文件系统中保存相应的公钥并在配置中使用它。ssh如果将 KeePassXC 添加到代理,将使用正确的密钥。
msys git(即默认的 Windows 版本的 git)似乎无法与 Windows SSH 代理一起使用。另一方面,git 的代理不能与 Windows 上的 KeePassXC 一起工作(很好)。
如果您通过 SSH 使用 git 并进行密钥文件身份验证,则必须应用一种解决方法,即将git 配置为使用固定密钥文件而不是代理。为此,您必须将私钥存储在文件系统中,这可能会违背将其存储在 KeePassXC 中的目的。如果您要使用此解决方法,请确保密钥文件受密码保护。KeePassXC 将使用条目的密码值来解锁密钥。对于 git,每次使用时都必须手动解锁。
应该可以与 Windows 并行运行 git 的 SSH 代理,但它们不会共享身份。您可以将ssh-add文件系统中存储的密钥文件中的身份识别给第二个代理,以避免每次使用时重新输入密码。我自己还没有尝试过这个设置,所以我无法提供确切的说明。