Python Paramiko Проблема при закрытии соединения - PullRequest
1 голос
/ 04 марта 2011

Я только что попробовал ssh соединение с paramiko.Все выглядит хорошо, но на последнем шаге, при вызове метода close() для отключения клиента.

Вот мой скрипт:

#!/usr/bin/python

import paramiko
import os

ssh = paramiko.SSHClient()
private_key = os.path.expanduser('~/.ssh/id_dsa')
mkey = paramiko.DSSKey.from_private_key_file(private_key,password='JacquiKoala')
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('monitor', username='probert', pkey = mkey)
stdin, stdout, stderr = ssh.exec_command('whoami')
print stdout.readlines()
ssh.close

Оболочка просто зависает, могу набратьВещи, без какого-либо результата, Ctrl + C или Ctrl + D не прекращают ни сценарий, ни соединение.У меня нет другого выхода, кроме как закрыть окно оболочки, которое выглядит грязно.

Я использую Ubuntu 10.10 с python 2.6.6 и paramiko-1.7.4, скомпилированными из исходных текстов.

Я действительно незнать, что происходит;close() метод корректно выполняется как «бла» для печати после того, как он также выполнен, без сообщения об ошибке и все еще подключен без надлежащего способа его остановить.

Спасибо за помощь:)

Приветствия;

Филипп

1 Ответ

2 голосов
/ 04 марта 2011

TL; DR: Вы не вызываете функцию. Сделайте это с ssh.close() вместо ssh.close

ssh.close является ссылкой на эту функцию. Он говорит вам о функции, он не вызывает функцию. Вот пример:

def a():
    return 6

a
> <function a at 0x108f71aa0>
a()
> 6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...