Предупреждение «Не удалось загрузить HostKeys» при подключении к SFTP-серверу с помощью pysftp - PullRequest
1 голос
/ 10 июня 2019

Я написал скрипт Python для подключения к SFTP-серверу с использованием аутентификации по ключу.Он успешно подключается к серверу, но показывает следующее предупреждение (см. Ниже).Что это значит и как это убрать.Какие изменения необходимо внести в код?

Мой код:

import os
import pysftp
import socket
import paramiko
import time
import os.path
import shutil

IP = "127.0.X.X"
myUsername = "USERNAME"
port = 22

cnopts = pysftp.CnOpts()
cnopts.hostkeys = None

import os
privatekeyfile = os.path.expanduser("C:\\Users\\Rohan\\.ssh\\cool.prv")
mykey = paramiko.RSAKey.from_private_key_file(privatekeyfile)

try:
    with pysftp.Connection(host=IP, username=myUsername,private_key=mykey,cnopts=cnopts) as sftp:
        try:
            r=str(socket.gethostbyaddr(IP))
            print("connection successful with "+r)

        except socket.herror:
            print("Unknown host")
except:
    print("connection failed")

Предупреждение:

UserWarning: Failed to load HostKeys from C:\Users\Rohan\.ssh\known_hosts.  You will need to explicitly load HostKeys (cnopts.hostkeys.load(filename)) or disableHostKey checking (cnopts.hostkeys = None).
  warnings.warn(wmsg, UserWarning)

1 Ответ

1 голос
/ 10 июня 2019

Я считаю, что это ошибка в pysftp.Вы получаете это каждый раз, когда используете cnopts.hostkeys = None (несмотря на предупреждение, фактически предлагающее использовать это).

В любом случае, вы не должны использовать cnopts.hostkeys = None, так вы потеряете безопасность.Для правильного решения см .:
Проверьте ключ хоста с помощью pysftp

Хотя, чтобы избежать предупреждения, вы должны хранить ключ хоста в стандартном месте (C:\Users\Rohan\.ssh\known_hosts, как виднов сообщении с предупреждением).


Если вы ссылаетесь на проверку подлинности ключа, я предполагаю, что вы ошибочно приняли ключ своей учетной записи с ключом хоста.Прочитайте мою статью о парах ключей SSH , чтобы понять разницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...