Paramiko SSHException: Server ... not found in known_hosts beheben

Problem:

Beim Versuch, sich mit paramiko an einen SSH-Server zu verbinden mit Code wie

paramiko_known_hosts.txt
ssh = paramiko.SSHClient()
ssh.connect("192.168.1.112")

erscheint eine Fehlermeldung wie

paramiko_sshexception.txt
SSHException: Server '192.168.1.112' not found in known_hosts

Lösung

Die einfachste Lösung ist, Folgendes hinzuzufügen

paramiko_autoaddpolicy.py
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

vor dem Aufruf von connect():

paramiko_connect_example.txt
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("192.168.1.112")

Dadurch werden unbekannte Host-Schlüssel automatisch zum known_hosts-Speicher hinzugefügt. Beachten, dass dies den Zweck der Verifizierung von Host-Schlüsseln bis zu einem gewissen Grad zunichtemacht und Host-Schlüssel nach Möglichkeit manuell verifiziert werden sollten. In vielen Anwendungen gibt es jedoch niemanden, der Host-Schlüssel in einem automatisierten Prozess verifizieren kann, und daher ist diese Lösung praktischer. Die Sicherheitsauswirkungen sollten jedoch im Auge behalten werden.


Check out similar posts by category: Paramiko, Python