Вопрос о подключении по секретному ключу с тканью python - PullRequest
0 голосов
/ 09 апреля 2020

Как я могу указать парольную фразу для моего Соединения с закрытым ключом? Я ничего не нашел в документации fabri c.

Вот мое соединение:

c = Connection(host="host",user="usr",connect_kwargs={"key_filename": "/home/user/.ssh/pkey",},)

И ошибка:

paramiko.ssh_exception.PasswordRequiredException: Private key file is encrypted

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Согласно документации вы можете передать фразу следующим образом:

c = Connection(host="host",user="usr",connect_kwargs={"key_filename": "/home/user/.ssh/pkey","passphrase":"mysecretpassphrase"},)
0 голосов
/ 09 апреля 2020

В соответствии с документацией сказано:

Параметр конфигурации connect_kwargs.passphrase является наиболее прямым способом предоставления ключевой фразы для автоматического использования.

Быстрое исправление:

c = Connection(host="host",user="usr",connect_kwargs={"key_filename": "/home/user/.ssh/pkey", "passphrase": "demo"},)

Здесь вы можете найти более подробную информацию. Также в здесь .

Рекомендуемый подход заключается в экспорте переменной среды в сеансе оболочки. например, export SSH_PASSPHRASE="gongo-aso! "

Затем его можно прочитать и использовать в параметрах connect_kwargs, передаваемых в конструктор для объекта Connection.

connect_kwargs = {
    'passphrase': getenv('SSH_PASSPHRASE')
}

c = Connection('user@ip.address', connect_kwargs=connect_kwargs)
...