如何验证 SSH 公钥?

Ste*_*ett 9 ssh key-authentication

我在将公钥复制到authorized_keys并用额外的换行符或空格或其他东西结束时遇到了问题。

有没有办法简单地验证密钥看起来像有效密钥?我没有私钥。

Hau*_*ing 11

也许ssh-keygen -lf authorized_keys就够了。

ssh-keygen -lf authorized_keys
key_read: uudecode AAAAB3Nzaf1a8eEABBABIwAAAQEA1y8gXks+s19QFdLP3ddei
  failed
authorized_keys is not a public key file.
Run Code Online (Sandbox Code Playgroud)

(您可以在检查之前将相应的行复制到单独的文件中。)如果散列函数太笨而无法检测错误,那么来回转换可能会这样做:

ssh-keygen -ef id_dsa.pub -m PKCS8 | ssh-keygen -i -f /dev/stdin -m PKCS8
Run Code Online (Sandbox Code Playgroud)

我希望该管道在格式错误的情况下会失败。