Comment créer un fichier d'hôtes connus? [dupliquer]
J'essaie de me connecter à un site SFTP en utilisant python mais le fichier known_hosts n'existe pas sur ma machine Windows 10. J'ai trouvé en ligne que la clé d'hôte apparaît lors de la première connexion au serveur:https://winscp.net/eng/docs/ssh_verifying_the_host_key
Comment puis-je convertir cela en un fichier known_hosts que je peux utiliser dans mon code python?
J'ai essayé de créer un fichier comme: hostname ssh-rsa 2EP...8MZ
dans l'exemple ci-dessus mais je reçois une erreur de clé d'hôte invalide:Error('Incorrect padding'))
Merci.
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()
Réponses
Tout d'abord, vous voudrez vraiment savoir quel protocole vous utilisez. Dans votre question, vous avez mentionné plusieurs fois FTP, et votre code + le concept dont vous parlez (known_hosts) sont des choses SFTP.
FTP et SFTP sont deux protocoles complètement différents, FTP étant l'un pour le transfert de fichiers entre un client et un serveur et SFTP pour déplacer des fichiers entre un client et un serveur SSH.
RÉSOLU !!! Je suis donc sous Windows et j'utilise FileZilla et WinScp pour les transferts sftp mais le fichier C: \ Users .... ssh n'a jamais existé à ma connaissance. J'ai téléchargé le client Windows SSH:https://www.howtogeek.com/336775/how-to-enable-and-use-windows-10s-built-in-ssh-commands/
Et puis utilisé PowerShell pour se connecter au serveur. Lorsque vous entrez la commande: ssh hostname
elle indiquera l'empreinte RSA et vous demandera si vous souhaitez vous connecter. Entrez Oui et il renverra "Avertissement: 'nom d'hôte' a été ajouté de manière permanente à la liste des hôtes connus. Le fichier .ssh apparaîtra alors dans votre répertoire C: \ Users .... ssh. Il pourra alors être référencé en python.
Merci.