AttributeError:' str'对象没有属性' public_blob'

时间:2017-11-22 20:08:59

标签: python ssh paramiko

我想从我的谷歌云计算引擎获取一个文件到我的覆盆子pi,但是我收到以下错误:

>>> list(getEquidistantPoints((1,1), (5,5), 4))
>>> [(1.0, 1.0), (2.0, 2.0), (3.0, 3.0), (4.0, 4.0), (5.0, 5.0)]

此错误消息的含义是什么?

提前致谢!

python文件:

  File "/usr/local/lib/python2.7/dist-packages/paramiko/auth_handler.py", line 212, in wait_for_response
raise e
AttributeError: 'str' object has no attribute 'public_blob'

1 个答案:

答案 0 :(得分:5)

参数array.length === 0pkey非常相似,需要类型为hostkey的值。但是你似乎在为它提供一个字符串。您可以通过从PKey创建对象,从私钥文件中获取PKey个对象。以下内容应该有所帮助:

paramiko.RSAKey

请注意,这假设您正在使用import paramiko hostname = '43.123.231.212' password = 'passw' username = 'dosop' port = 22 gc_path='/home/do//assets/locations.txt' remotepath='/home/pi/ada.txt' pk = paramiko.RSAKey.from_private_key(open('/home/pi/dos/priv_key')) t = paramiko.Transport((hostname, 22)) t.connect(username=username, password=password, pkey=pk) sftp = paramiko.SFTPClient.from_transport(t) sftp.get(gc_path, remotepath) 键;因此使用rsa

另外,请记住,如果您的私钥文件有密码,您需要提供密码作为函数paramiko.RSAKey的第二个参数,如下所示:

paramiko.RSAKey.from_private_key

我希望这会有所帮助。