Как автоматизировать добавление парольной фразы в fttplib в python - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь загрузить файлы с использованием ftps. Я использую ftplib в Python. Проблема в том, что при попытке установить соединение мне всегда приходится вручную вводить ключевую фразу для ключа. Как я могу автоматизировать это?

Эта команда curl работает отлично

curl -k -la --ftp-method nocwd --ftp-ssl -u test_user:test_password --key my_key.key --cert my_cert.crt:cert_password ftp.mysite.com

Но когда я пытаюсь использовать python, я должен вручную ввести "cert_password"

import ftplib
conn = ftplib.FTP_TLS(host='ftp.mysite.come', user='test_user', passwd='test_password', keyfile='my_key.key', certfile='my_cert.crt') 

1 Ответ

0 голосов
/ 03 мая 2018

Я не работал с ftplib , но согласно [Python]: class ftplib. FTP_TLS ( host = ' ', user =' ', passwd =' ', acct =' ', ключевой файл = нет, certfile = нет, контекст = нет, тайм-аут = нет, source_address = нет ) :

keyfile и certfile являются устаревшей альтернативой context - они могут указывать на файлы частного ключа и цепочки сертификатов в формате PEM (соответственно) для SSL подключение.

Глядя на [Python]: контексты SSL , вы должны выполнить подключение в 2 этапа:

import ssl
import ftplib
ctx = ssl.SSLContext()
ctx.load_cert_chain("my_cert.crt", keyfile="my_key.key", password="cert_password")
conn = ftplib.FTP_TLS(host="ftp.mysite.come", user="test_user", passwd="test_password", context=ctx)
...