1

我正在使用一个使用 paramiko 通过 SSH 连接到服务器的工具。

该工具需要我创建 SSH 密钥,经过多次尝试和测试,我得到了这个药水:

ssh-keygen -f my-key -o -t ed25519 -N ""

作为参考,我使用该工具是-o因为该工具需要OPENSSH密钥。这-t ed25519是因为它需要这种格式。-N ""是因为它需要未加密的密钥。

现在,paramiko 抛出了这个异常:

  File "/usr/lib/python3.6/site-packages/paramiko/ed25519key.py", line 152, in _parse_signing_key_data
    message = Message(unpad(private_data))
  File "/usr/lib/python3.6/site-packages/paramiko/ed25519key.py", line 40, in unpad
    raise SSHException("Invalid key")
paramiko.ssh_exception.SSHException: Invalid key

引发异常的代码似乎是this,但我不知道如何解决这个问题......任何想法这个填充的东西是关于什么的?

4

1 回答 1

1

截至 2018 年 9 月(和 paramiko 版本 2.4.2),Invalid key当密码无法解密 ed25519 密钥时会引发异常。

您甚至可能没有意识到 paramiko 正在尝试解密 ed25519 密钥。

例如,如果应用程序给 paramiko 一个 RSA 密钥文件和一个匹配的密码,而远程服务器拒绝该 RSA 密钥,那么 paramiko 将在~/.ssh/id_ed25519. 如果该密钥文件存在,并且您提供的密码无法解密该密钥,您将收到Invalid key错误消息。

除了删除~/.ssh/id_ed25519(糟糕!!),我不知道一个简单的解决方法。

更多详情请查看:
https ://github.com/paramiko/paramiko/issues/1305

更新:

我发现了一个额外的错误。任何带有特定长度注释的 ed25519 键也会导致“无效键”异常。详情请见:
https ://github.com/paramiko/paramiko/issues/1306

于 2018-09-30T03:23:14.987 回答