Vérifiez la clé d'hôte avec pysftp

Je suis en train d'écrire un programme utilisant pysftp, et il veut vérifier le SSH Clé de l'hôte contre C:\Users\JohnCalvin\.ssh\known_hosts.

À l'aide de Mastic, le programme de terminal est de l'enregistrer dans le Registre [HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys].

Comment puis-je concilier la différence entre pysftp et de Mastic?

Mon code est:

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()

La Réponse d'Erreur que je reçois est:

E:\Program Files (x86)\Anaconda3\lib\site-packages\pysftp__init__.py:61: UserWarning:

Échec du chargement de HostKeys de C:\Users\JohnCalvin.ssh\known_hosts.

Vous aurez besoin de charger explicitement HostKeys
(cnopts.hostkeys.charge(filename)) ou disableHostKey vérification
(cnopts.hostkeys = None). mises en garde.avertir(wmsg, UserWarning) Traceback
(most recent call last): File
"E:\OneDrive\Python\GIT\DigitalCloud\pysftp_tutorial.py", la ligne 14, en

push_file_to_server() File "E:\OneDrive\Python\GIT\DigitalCloud\pysftp_tutorial.py", à la ligne 7, dans
push_file_to_server
s = sftp.Connexion(host='138.99.99.129', nom d'utilisateur='root', le mot de passe='********') Fichier "E:\Program Fichiers
(x86)\Anaconda3\lib\site-packages\pysftp__init__.py", de la ligne 132, dans
init
auto._tconnect['clef'] = self._cnopts.get_hostkey(hôte) du Fichier "E:\Program Fichiers
(x86)\Anaconda3\lib\site-packages\pysftp__init__.py", la ligne 71, dans
get_hostkey
soulever SSHException("Pas de clef pour host %s trouvé." % d'accueil) paramiko.ssh_exception.SSHException: Pas de clef pour l'hôte 138.99.99.129
trouvé. Exception ignoré à: > Traceback (most
récent call last): File "E:\Program Fichiers
(x86)\Anaconda3\lib\site-packages\pysftp__init__.py" de ligne, 1013, dans
del
auto.close() du Fichier "E:\Program Files (x86)\Anaconda3\lib\site-packages\pysftp__init__.py" de ligne, 784, dans
fermer
si l'auto._sftp_live: AttributeError: 'Connexion' objet n'a pas d'attribut "_sftp_live'

  • Vous pouvez trouver la réponse à votre problème dans le pysftp documentation qui mentionne cette question explicitement ici.