Ich schreibe ein Programm mit pysftp und es möchte den SSH-Hostschlüssel anhand überprüfen C:\Users\JohnCalvin\.ssh\known_hosts
.
Mit PuTTY speichert das Terminalprogramm es in der Registrierung [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys]
.
Wie kann ich den Unterschied zwischen pysftp und PuTTY in Einklang bringen?
Mein Code lautet:
import pysftp as sftp
def push_file_to_server():
s = sftp.Connection(host='138.99.99.129', username='root', password='*********')
local_path = "testme.txt"
remote_path = "/home/testme.txt"
s.put(local_path, remote_path)
s.close()
push_file_to_server()
Die Fehlerantwort, die ich erhalte, lautet:
E: \ Programme (x86) \ Anaconda3 \ lib \ site-packages \ pysftp__init __. Py: 61: UserWarning:
HostKeys konnte nicht aus C: \ Users \ JohnCalvin.ssh \ unknown_hosts geladen werden.
Sie müssen HostKeys (cnopts.hostkeys.load (Dateiname)) explizit laden oder die Überprüfung von HostKey deaktivieren (cnopts.hostkeys = None). warnings.warn (wmsg, UserWarning) Traceback (letzter Aufruf zuletzt): Datei "E: \ OneDrive \ Python \ GIT \ DigitalCloud \ pysftp_tutorial.py", Zeile 14, in push_file_to_server () Datei "E: \ OneDrive \ Python \ GIT \ DigitalCloud \ pysftp_tutorial.py ", Zeile 7, in push_file_to_server s = sftp.Connection (Host = '138.99.99.129', Benutzername = 'root', Passwort = '********') Datei" E. : \ Programme (x86) \ Anaconda3 \ lib \ site-packages \ pysftp__init __. Py ", Zeile 132, in init self._tconnect ['hostkey'] = self._cnopts.get_hostkey (host) Datei "E: \ Programme (x86) \ Anaconda3 \ lib \ site-packages \ pysftp__init __. py", Zeile 71, in get_hostkey erhöhen SSHException (" Kein Hostschlüssel für Host% s gefunden. "% Host) paramiko.ssh_exception.SSHException: Kein Hostschlüssel für Host 138.99.99.129 gefunden. Ausnahme ignoriert in:> Traceback (letzter Aufruf zuletzt): Datei "E: \ Programme (x86) \ Anaconda3 \ lib \ site-packages \ pysftp__init __. Py", Zeile 1013, in del self.close () Datei "E. : \ Programme (x86) \ Anaconda3 \ lib \ site-packages \ pysftp__init __. Py ", Zeile 784, in close if self._sftp_live: AttributeError: Das Objekt 'Connection' hat kein Attribut '_sftp_live'.
pysftp