ssh2-python软件包。 userauth_publickey_fromfile方法的有效参数

时间:2018-09-18 04:21:53

标签: python libssh2

基于docstring的此方法接受以下参数:

  

文档字符串:Session.userauth_publickey_fromfile(自己,用户名,    privatekey ,密码=”,publickey =无)与公众进行身份验证   文件中的密钥。

但是official project description有这个例子:

  

session.userauth_publickey_fromfile(       用户名 'my_pkey.pub' ,'my_pkey','')

因此,在此示例中,第二个参数是公钥,但是文档字符串说它必须是私钥。

在文档字符串中还有2个位置参数,但在给定的示例中有4个。

那么正确的参数组合是什么?

谢谢。

P.S。此外,尚不清楚应以哪种格式显示私钥和公钥。应该像文件或字节的路径一样吗?如果以字节为单位,那么为什么整个函数都称为“ _fromfile”?非常令人困惑。

2 个答案:

答案 0 :(得分:1)

  

问题:尚不清楚哪种格式应为privatekeypublickey


  

GitHub上的消息来源:

def userauth_publickey_fromfile(self, 
                                username not None, 
                                privatekey not None, 
                                passphrase='', 
                                publickey=None):  

Documentation中,仅对publickey解释了types
出于安全原因,私钥绝不应存储在python脚本内。 您必须从访问限制的文件存储中读取它。

您是对的,应按userauth_publickey(...)中的说明解释参数。

  

文档 userauth_publickey ...
  enter image description here

答案 1 :(得分:0)

终于找到了正确的参数组合:

session.userauth_publickey_fromfile(user, '<path to private key file>')

在我的情况下,没有密码短语,因此未提供。 不知道为什么作者以这种方式实现此功能。 “私钥”是必填字段,可以随时从中生成公钥。但是它们也为“ publickey =“提供了其他关键字参数。