Pysftp: время ожидания истекло - PullRequest
1 голос
/ 22 сентября 2019

Я пытаюсь подключиться к серверу с помощью следующего сценария:

import pysftp

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

srv = pysftp.Connection(host="sftp://my_ip:my_port", 
                        username="alessandro", password="alessandro", port=2222,
                        cnopts=cnopts)
data = srv.listdir()
srv.close()

for i in data:
    print (i)

Если я пытаюсь получить доступ через FileZilla или аналогичные клиенты с теми же учетными данными, это работает;даже если он отображает следующее предупреждение, касающееся алгоритма ключа хоста и отпечатка пальца, как:

enter image description here

, однако сценарий не работает должным образом и сообщает о следующей ошибке:

SSHException: Невозможно соединиться с sftp: // my_ip: my_port: [Errno 60] Тайм-аут операции

Даже если я попытаюсь с host =только my_ip Кроме того, если я не установил cnopts, он не найдет ключ хоста.

Как я могу решить его?

1 Ответ

0 голосов
/ 23 сентября 2019

Параметр host конструктора Connection :

Имя хоста или IP удаленного компьютера..

Не URL .

Так должно быть:

srv = pysftp.Connection(host="my_ip", 
                        username="alessandro", password="alessandro", port=2222,
                        cnopts=cnopts)

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

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