Я успешно использовал этот код для подключения к нескольким различным SFTP-серверам:
Код: Выделить всё
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname, port=port, username=username, password=password)
sftp = ssh.open_sftp()
Однако есть еще один SFTP-сервер, который, когда я пытаюсь использовать этот код, выдает ошибку ConnectionResetError: [WinError 10054] Существующее соединение было принудительно закрыто удаленным хостом. Для этого сервера (и, я думаю, для остальных тоже) следующий код успешно подключается без ошибок:
Код: Выделить всё
transport = paramiko.Transport((hostname, port))
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
Почему поведение может быть другим/как мне выяснить, что вызывает ошибку? Я хотел бы иметь возможность использовать один и тот же код для всех SFTP-серверов, к которым я подключаюсь. Должен ли я всегда использовать транспортное соединение или есть способ изменить соединение SSHClient, чтобы оно работало в этом случае?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... client-but