GPG 身份验证子项:"invalid format"错误



我已经使用GPG与身份验证子密钥有一段时间了,我最近遇到了一个相当无用的错误消息。我正在写这个问题"Q&A-style"帮助那些可能遇到同样问题的人。

我为GitHub的东西使用了一组GPG密钥-用于提交签名和通过SSH进行身份验证。我决定将身份验证子密钥升级到较新的ED25519椭圆曲线标准,因此我添加了一个具有身份验证功能的新ed25519子密钥,并撤销了旧的RSA身份验证子密钥。我gpg --export-ssh-key编辑了新的子密钥,然后将其添加到GitHub和本地~/.ssh/id_gpg_gh.pub文件中,该文件通过我的SSH配置设置为我的GitHub身份文件。

但是,此时,当我测试登录能力时,SSH抛出了一个Load key ".ssh/id_gpg_gh.pub": invalid format错误。以详细模式(ssh -T github.com -v)连接显示SSH正确地发布了我的新密钥,GitHub正在接受它,但接受后立即出现错误消息。由于格式化问题,SSH似乎拒绝实际使用我的新子密钥。

在这种情况下,错误消息被证明是有点误导。正如提示的那样,我的公钥文件中没有格式化错误。相反,我忘记告诉GPG代理使用我的新子密钥,我通过将它的键柄添加到~/.gnupg/sshcontrol来修复它。

尽管这是一个简单的修复,但错误消息足以误导我,我预计其他人会遇到同样的问题并感到类似的困惑。我希望这个答案在这种情况下会有用。

另外,如果阅读本文的人需要一个很好的参考来首先设置GPG/SSH身份验证:有几个在线指南,但这个来自opensource.com的指南是一个很好的开始。这也是我如何确定我跳过的安装步骤,解决我的问题。

相关内容

最新更新