У нас есть SFTP-сервер с включенной аутентификацией. Для доступа к серверу нам необходимо предоставить пароль и закрытый ключ. Я могу получить доступ к серверу с помощью winscp. Но не могу получить доступ с помощью кода Python.
Я пробовал использовать модули pysftp и paramiko, но безуспешно. Когда я проверяю модуль paramiko, он не учитывает пароль, если при вызове подключения передается закрытый ключ.
Ниже приведен мой код, не могли бы вы проверить, предложите мне, есть ли какой-либо подход к решите эту проблему.
Код с использованием paramiko
client = paramiko.client.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
pk = paramiko.RSAKey.from_private_key_file('private_key_path')
client.connect('sftp.exmple.com', username='username', port=22, password='password', pkey=pk)
client.open_sftp()
Код с использованием pysftp
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
with pysftp.Connection('sftp.exmple.com', username='usernmae', port=22, password='password', cnopts=cnopts, private_key='private_key_path') as sftp:
sftp.put('test.txt','/tmp')
sftp.close()
Подробнее здесь: https://stackoverflow.com/questions/765 ... rivate-key