2016-03-26 11 views
0

Mein Code:paramiko Fehler "missing_host_key() fehlt 1 erforderliche Positions Argument: 'Schlüssel'"

#!/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() 

Wenn lief, bekomme ich folgende Fehlermeldung:

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' 

Ich kann in der ssh Maschine in Frage ganz gut (ich meine, „ich brauche nicht einmal mein Passwort eingeben“ fine)

Antwort

4

Sie müssen das WarningPolicy Objekt zu übergeben

set_missing_host_key_policy
client.set_missing_host_key_policy(WarningPolicy()) 
+0

Stimmen Sie zu, dass dies die Lösung ist. Das Problem ist, dass der Doco sagt, dass Sie eine OR-Instanz der Klasse verwenden können: "Eine Richtlinie ist eine" Richtlinienklasse "(oder eine Instanz davon)" –

Verwandte Themen