Wie erstelle ich eine bekannte Hosts-Datei? [Duplikat]

Dec 15 2020

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...8MZIm 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

TheDevKiller Dec 15 2020 at 21:28

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.

SaltyLeaguePlayer Dec 15 2020 at 23:03

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 hostnameDer 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.