При попытке использовать pysftp для извлечения / отправки файла с / на SFTP-сервер (через выделенное соединение) я пытаюсь отключить проверку хост-ключа, но все равно получаю предупреждение о том, что pysftp не может загрузитьhostkeys из файла known_hosts.Несмотря на предупреждение, процесс передачи файла завершается, как и ожидалось.
Я знаю, что не рекомендуется пропускать проверку ключей, но хост не публикует ключи, и его связь происходит в частной сети, передающейзашифрованные файлы, поэтому риск в этом конкретном случае относительно низкий.
Тем не менее, я попытался поместить пустой файл known_hosts в правильный каталог, только чтобы получить более серьезную ошибку.
Следующий пример кода прекрасно работает для меня ...кроме приведенного ниже предупреждения.
import sys
import pysftp
hostname = "123.123.123.123"
username = "abc"
password = "xyz"
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None
with pysftp.Connection(hostname, username=username, password=password, cnopts=cnopts) as sftp:
sftp.get('/test.get', preserve_mtime=True)
sftp.put('test.put', preserve_mtime=True)
При выполнении этого сценария генерируется следующее предупреждение:
UserWarning: Failed to load HostKeys from C:\Users\eah036\.ssh\known_hosts.
You will need to explicitly load HostKeys (cnopts.hostkeys.load(filename))
or disableHostKey checking (cnopts.hostkeys = None).
warnings.warn(wmsg, UserWarning)
Я мог бы жить с генерируемыми сообщениями предупреждения, но я бы предпочел, чтобычистый вывод терминала при выполнении кода.Любые мысли о том, почему параметр cnopts.hostkeys
кажется "игнорируемым"?