2016-03-26 5 views
0

Мой код:Paramiko ошибка "missing_host_key() отсутствует 1 необходимый позиционную аргумент: 'ключ'"

#!/usr/bin/env python3 

from paramiko.client import SSHClient, WarningPolicy 

HOST_NAME = "********" 
USER_NAME = "********" 
PASSWD = "********" 

def ssh_setup(): 
    client = SSHClient() 
    client.load_system_host_keys() 
    client.set_missing_host_key_policy(WarningPolicy) 
    client.connect(HOST_NAME, 22, USER_NAME, PASSWD) 
    return client 

def main(): 
    client = ssh_setup() 
    client.exec_command("DISPLAY=:0.0 notify-send \"Test\"") 
    client.close() 

if __name__ == "__main__": 
    main() 

Когда бежал, я получаю следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "./test", line 30, in <module> 
    main() 
    File "./test", line 25, in main 
    client = ssh_setup() 
    File "./test", line 20, in ssh_setup 
    client.connect(HOST_NAME, 22, USER_NAME, PASSWD) 
    File "/usr/local/lib/python3.4/dist-packages/paramiko/client.py", line 348, in connect 
    server_key) 
TypeError: missing_host_key() missing 1 required positional argument: 'key' 

Я могу SSH в машина в вопросе просто отлично (я имею в виду, «я даже не нужно вводить свой пароль» штраф)

ответ

4

Вам нужно передать объект WarningPolicy к set_missing_host_key_policy

client.set_missing_host_key_policy(WarningPolicy()) 
+0

Согласитесь, что это исправление. Проблема в том, что doco говорит, что вы можете использовать экземпляр класса ИЛИ: «Политика - это« класс политики »(или его экземпляр)» –

Смежные вопросы