«getaddrinfo fail» при подключении к SFTP-серверу с использованием Paramiko - PullRequest
1 голос
/ 03 ноября 2019

Я пытаюсь подключиться к SFTP-серверу, но он возвращает ошибку:

[Errno 11001] сбой getaddrinfo

Я использую Python 3.7.3 и версию Paramikoсоставляет 2.6.0

import paramiko

host_name = "sftp://81.149.151.143"
user_name = "******"
password = "******"

ssh_client = paramiko.SSHClient()
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh_client.connect(hostname=host_name, port=220, username=user_name, password=password)

ftp_client=ssh_client.open_sftp()
ftp_client.put('***/issue_1.docx', '/issue_1.docx') 
ftp_client.close()

Это полная ошибка:

Traceback (most recent call last):
  File "/sftp/paramiko_bot.py", line 10, in <module>
    ssh_client.connect(hostname=host_name, port=22, username=user_name, password=password)
  File "\Local\Programs\Python\Python37\lib\site-packages\paramiko\client.py", line 340, in connect
    to_try = list(self._families_and_addresses(hostname, port))
  File "\Local\Programs\Python\Python37\lib\site-packages\paramiko\client.py", line 204, in _families_and_addresses
    hostname, port, socket.AF_UNSPEC, socket.SOCK_STREAM
  File "\AppData\Local\Programs\Python\Python37\lib\socket.py", line 748, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed

1 Ответ

1 голос
/ 04 ноября 2019

Параметр hostname SSHClient.connect должен содержать имя хоста (или в вашем случае IP-адрес) - не какой-либо URL.

ssh_client.connect(hostname="81.149.151.143", port=220, username=..., password=...)

Обязательное предупреждение: не используйте AutoAddPolicy таким образом - вы теряете защиту от MITM-атак , делая это. Для правильного решения см. Paramiko "Неизвестный сервер" .

...