2017-02-10 12 views
1

Проблема с использованием Paramiko для подключения SFTP.«Соединение отказано» при открытии сеанса SSH с использованием paramiko.Transport

Я попытался следующие:

transport = paramiko.Transport(sftpHost, 22) 
myKey = paramiko.RSAKey.from_private_key_file(rsaKeyFileSpec) 
transport.connect(username = sftpUser, pkey = myKey) 
sftp = paramiko.SFTPClient.from_transport(transport) 

я получаю ответ:

paramiko.ssh_exception.SSHException: Невозможно подключиться к HOST: [Errno 111] Соединение отклонено

Что я делаю неправильно?

+0

Вы можете подключиться к 'sftpHost' с автономным клиентом SSH, из тот же компьютер, который запускает ваш код Python? –

+0

Да, могу. Нет проблем с использованием sftp из командной строки Linux. – Niall

+0

Покажите нам paramiko log ('paramiko.util.log_to_file ('demo_sftp.log')'), а также 'sftp -v ..'. –

ответ

2

Оно должно быть:

transport = paramiko.Transport((sftpHost, 22)) 

или

transport = paramiko.Transport(sftpHost) 

Transport constructor является:

__init__(sock, default_window_size=2097152, default_max_packet_size=32768, gss_kex=False, gss_deleg_creds=True) 

Создать новый сеанс SSH над существующий сокет или сокет-подобный объект.

...

Для простоты использования, вы можете также передать в адресе (как кортеж) или принимающой строка в качестве аргумента sock. (Строка хост имя хоста с дополнительным портом (отделенной ":"), который будет преобразован в кортеж (имя хоста, порт).)

+0

Большое спасибо - в этом была проблема. – Niall