gpt4 book ai didi

python - Paramiko PKey.from_private_key_file 给我 "__init__() got an unexpected keyword argument ' 文件名'”

转载 作者:行者123 更新时间:2023-12-02 14:27:28 31 4
gpt4 key购买 nike

我从 paramiko 得到了非常奇怪的行为:

bla=paramiko.pkey.PKey(msg=None,data=None).from_private_key_file()
TypeError                                 Traceback (most recent call last)
<ipython-input-32-13288f655ecf> in <module>
----> 1 paramiko.pkey.PKey(msg=None,data=None).from_private_key_file()

TypeError: from_private_key_file() missing 1 required positional argument: 'filename'

这里它告诉我我需要一个文件名,但是每当我尝试指定任何内容时:

bla=paramiko.pkey.PKey(msg=None,data=None).from_private_key_file('key')
                                 Traceback (most recent call last)
<ipython-input-33-5fa0cf9b6317> in <module>
----> 1 bla=paramiko.pkey.PKey(msg=None,data=None).from_private_key_file('key')

~/anaconda3/lib/python3.7/site-packages/paramiko/pkey.py in from_private_key_file(cls, filename, password)
233 :raises: `.SSHException` -- if the key file is invalid
234 """
--> 235 key = cls(filename=filename, password=password)
236 return key
237

TypeError: __init__() got an unexpected keyword argument 'filename'

谁能给我解释一下这是怎么回事?我完全糊涂了。

最佳答案

  1. PKey.from_private_key_file是一个类方法。
  2. 不要使用 PKey base class直接地。您必须使用正确的后代类,例如 RSAKey , DSSKey

作为documentation说:

Through the magic of Python, this factory method will exist in all subclasses of PKey (such as RSAKey or DSSKey), but is useless on the abstract PKey class.

正确的代码是这样的:

key = paramiko.RSAKey.from_private_key_file('key')

尽管如果您打算将 key 与 SSHClient 一起使用,您可以将文件名直接传递给 SSHClient.connectkey_filename 参数而且您根本不必处理 key 加载。

关于python - Paramiko PKey.from_private_key_file 给我 "__init__() got an unexpected keyword argument ' 文件名'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61375946/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com