Не удалось получить ключ 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, password=password)
  File "/root/python3-virtualenv/lib64/python3.6/site-packages/paramiko/dsskey.py", line 55, in __init__
    self._from_private_key_file(filename, password)
  File "/root/python3-virtualenv/lib64/python3.6/site-packages/paramiko/dsskey.py", line 228, in _from_private_key_file
    data = self._read_private_key_file('DSA', filename, password)
  File "/root/python3-virtualenv/lib64/python3.6/site-packages/paramiko/pkey.py", line 267, in _read_private_key_file
    with open(filename, 'r') as f:
TypeError: expected str, bytes or os.PathLike object, not _io.TextIOWrapper

Было бы здорово, если бы кто-нибудь помог мне определить, чего не хватает в моей реализации. заранее спасибо


person Ark    schedule 23.07.2021    source источник
comment
@MartinPrikryl Не работает с этим   -  person Ark    schedule 23.07.2021
comment
@MartinPrikryl Попробовав это решение, я получил ошибку ниже. StringIO не является атрибутом StringIO()   -  person Ark    schedule 23.07.2021
comment
Вы видели комментарий @ekrekeler? В Python 3 импортируйте io и используйте io.StringIO(my_key)   -  person Martin Prikryl    schedule 23.07.2021
comment
Отвечает ли это на ваш вопрос? Внедрение ключа в виде строки в приложение Paramiko   -  person Martin Prikryl    schedule 27.07.2021