Gnome Keyring 是否支持新格式的 OpenSSH 私钥?

D.W*_*.W. 5 ssh gnome-keyring openssh ssh-agent ssh-keygen

是否支持以较新的 OpenSSH 文件格式gnome-keyring保存的 SSH 私钥?Gnome Keyring 会自动导入这些私钥吗?

更详细地说:生成 SSH 私钥时,ssh-keygen可以将私钥保存为较新的 OpenSSH 格式(而不是“更兼容的 PEM 格式”)。在这种格式下,私钥文件以“ -----BEGIN OPENSSH PRIVATE KEY-----”开头。

我刚刚为 SSH 生成了一个新的 RSA 私钥,并将其保存为较新的格式,使用ssh-keygen -t rsa -b 3072 -o -a 16. 现在 Gnome Keyring 似乎无法加载该私钥。相比之下,使用时一切似乎都工作正常ssh-agent。

当将 Gnome Keyring 与此新私钥一起使用时,我在以下位置看到以下错误消息/var/log/messages:

gnome-keyring-daemon[10904]: invalid or unrecognized private SSH key: [key id]
gnome-keyring-daemon[10904]: signing of the data failed: The operation failed
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时ssh,我在终端中看到以下错误消息:

sign_and_send_pubkey: signing failed: agent refused operation
Run Code Online (Sandbox Code Playgroud)

如果相关的话,我正在使用 Fedora 25 和 MATE,以及gnome-keyring-3.20.0-1.fc25.x86_64.

slm*_*slm 1

现在情况略有变化。因此,GNOME 3.28 现在封装了 OpenSSH 的 ssh-agent,这为它提供了与 OpenSSH 相同级别的支持。

参考 - Archlinux wiki - GNOME/Keyring

已知的问题

无法处理 ECDSA 和 Ed25519 密钥

截至 2018 年 1 月,GNOME 密钥环不处理ECDSA或 Ed25519密钥。如果您需要其他SSH 代理的支持,您可以寻求这些代理的支持。

注意:从 GNOME 3.28 开始, gnome-keyring 将其 SSH 代理实现替换为openssh附带的 ssh-agent 工具的包装器。因此,上游 ssh-agent 支持的任何类型的密钥现在也受 gnome-keyring 支持,包括 ECDSA 和 Ed25519 密钥。

如果您仍然发现自己落后于这个特定版本,此要点显示了如何使用它keychain来解决此问题,标题为:SSH with ed25519 (curve25519) + GNOME-KeyRing。

参考