Wie erstelle ich eine bekannte Hosts-Datei? [Duplikat]
Ich versuche, mit Python eine Verbindung zu einer SFTP-Site herzustellen, aber die Datei unknown_hosts ist auf meinem Windows 10-Computer nicht vorhanden. Ich habe online festgestellt, dass der Hostschlüssel beim ersten Herstellen einer Verbindung zum Server angezeigt wird:https://winscp.net/eng/docs/ssh_verifying_the_host_key
Wie konvertiere ich dies in eine Datei "unknown_hosts", die ich in meinem Python-Code verwenden kann?
Ich habe versucht, eine Datei wie die folgende zu erstellen: hostname ssh-rsa 2EP...8MZ
Im obigen Beispiel wird jedoch ein ungültiger Hostschlüsselfehler angezeigt:Error('Incorrect padding'))
Dankeschön.
import pysftp
cnopts = pysftp.CnOpts(knownhosts='C:\\Users\\Documents\\known_hosts')
with pysftp.Connection('xxx',username='xxx', password='xxx',cnopts=cnopts) as sftp:
localpath='TEST.txt'
remotepath='TEST.txt'
sftp.put(localpath,remotepath)
sftp.close()
Antworten
Zuerst möchten Sie wirklich wissen, welches Protokoll Sie verwenden. In Ihrer Frage haben Sie mehrfach FTP erwähnt, und Ihr Code + das Konzept, über das Sie sprechen (bekannte_Hosts), sind SFTP-Dinge.
FTP und SFTP sind zwei völlig unterschiedliche Protokolle, wobei FTP eines zum Übertragen von Dateien zwischen einem Client und einem Server und SFTP zum Verschieben von Dateien zwischen einem SSH-Client und einem Server ist.
Gelöst !!! Ich bin also unter Windows und verwende FileZilla und WinScp für SFTP-Übertragungen, aber die Datei C: \ Users .... ssh hat meines Wissens noch nie existiert. Ich habe den Windows SSH-Client heruntergeladen:https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/
Verwenden Sie dann PowerShell, um eine Verbindung zum Server herzustellen. Wenn Sie den Befehl eingeben: ssh hostname
Der RSA-Fingerabdruck wird angezeigt und Sie werden gefragt, ob Sie eine Verbindung herstellen möchten. Geben Sie "Ja" ein und es wird "Warnung: Permanent 'Hostname' zur Liste der bekannten Hosts hinzugefügt. Die .ssh-Datei wird dann in Ihrem Verzeichnis C: \ Users .... ssh angezeigt. Auf diese kann dann in Python verwiesen werden.
Dankeschön.