从私钥获取dss密钥失败

问题描述

我正在尝试使用 paramiko 登录远程服务器。但它因以下错误而失败

 File "/root/xat-pvt-xat/ssh.py",line 30,in check_aux_host_for_file
    dsakey = paramiko.DSSKey.from_private_key(file_obj=credentials[env]["sftp_pass"])
  File "/root/python3-virtualenv/lib64/python3.6/site-packages/paramiko/pkey.py",line 217,in from_private_key
    key = cls(file_obj=file_obj,password=password)
  File "/root/python3-virtualenv/lib64/python3.6/site-packages/paramiko/dsskey.py",line 52,in __init__
    self._from_private_key(file_obj,password)
  File "/root/python3-virtualenv/lib64/python3.6/site-packages/paramiko/dsskey.py",line 232,in _from_private_key
    data = self._read_private_key('DSA',file_obj,password)
  File "/root/python3-virtualenv/lib64/python3.6/site-packages/paramiko/pkey.py",line 272,in _read_private_key
    lines = f.readlines()
AttributeError: 'str' object has no attribute 'readlines'


#实施

pr_pkey ="""
THE PRIVATE KEY
"""
dsakey = paramiko.DSSKey.from_private_key(pr_pkey)

我尝试将它放在一个 pem 文件中,并尝试使用以下命令。 dsakey = paramiko.DSSKey.from_private_key_file(open('pr_ssh_key.pem','r'))

不幸的是,由于以下错误也失败了

   dsakey = paramiko.DSSKey.from_private_key_file(open('pr_ssh_key.pem','r'))
  File "/root/python3-virtualenv/lib64/python3.6/site-packages/paramiko/pkey.py",line 196,in from_private_key_file
    key = cls(filename=filename,line 55,in __init__
    self._from_private_key_file(filename,line 228,in _from_private_key_file
    data = self._read_private_key_file('DSA',filename,line 267,in _read_private_key_file
    with open(filename,'r') as f:
TypeError: expected str,bytes or os.pathLike object,not _io.TextIOWrapper

如果有人能帮助我确定我的实施中缺少什么,那就太好了。提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)