Соединение с тестовым SFTP-сервером на 0.0.0.0 - PullRequest
2 голосов
/ 16 июня 2020

Я пытаюсь подключиться и загрузить / загрузить текстовый файл через Python, но получаю эту ошибку:

Traceback (most recent call last):
File "C:\Users\Abdul\OneDrive\Desktop\SFTP neu\main3.py", line 8, in <module>
c.connect(hostname = "0.0.0.0",port = 22, username = "tester", pkey = k)
File "D:\Python\lib\site-packages\paramiko\client.py", line 349, in connect
retry_on_signal(lambda: sock.connect(addr))
File "D:\Python\lib\site-packages\paramiko\util.py", line 283, in retry_on_signal
return function()
File "D:\Python\lib\site-packages\paramiko\client.py", line 349, in <lambda>
retry_on_signal(lambda: sock.connect(addr))
OSError: [WinError 10049] Die angeforderte Adresse ist in diesem Kontext ungültig

Я использую Rebex TinySFTP Server .

Сначала я подумал, что мой хост ошибается, но это было не так. В этом примере я использовал 0.0.0.0.

enter image description here

Вот мой код:

#!/usr/bin/python3
import paramiko

k = paramiko.RSAKey.from_private_key_file("C:\\Users\\Abdul\\OneDrive\\Desktop\\RebexServer\\private-rsa-key.pem")
c = paramiko.SSHClient()
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
print("connecting")
c.connect(hostname = "0.0.0.0",port = 22, username = "tester", pkey = k)
print("connected")
commands = ["C:\\Users\\Abdul\\OneDrive\\Desktop\\RebexServer\\data\\testfile.txt", "C:\\Users\\Abdul\\OneDrive\\Desktop\\SFTP neu\\data\\testfile1.txt"]
for command in commands:
    print("Executing {0}".format( command ))
    stdin , stdout, stderr = c.exec_command(command)
    print(stdout.read())
    print("Errors")
    print(stderr.read())
c.close()

1 Ответ

1 голос
/ 16 июня 2020

Сначала я подумал, что мой хост ошибается, но это было не так. В этом примере я использовал 0.0.0.0

0.0.0.0 часто используется, когда запускает сервер , чтобы указать, что сервер должен связываться со всеми доступными IP-адресами. Но это не то, что вы должны использовать в своем клиенте.

Используйте один из фактических IP-адресов, к которым привязан ваш сервер. Если оба находятся на одном компьютере, попробуйте 127.0.0.1 или любой другой IP-адрес, который вы используете локально. Адреса, начинающиеся с 192.168., распространены в домашних и небольших офисных сетях.

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