Maison >développement back-end >Tutoriel Python >Comment puis-je vérifier les clés d'hôte en toute sécurité lors de l'utilisation de pysftp ?

Comment puis-je vérifier les clés d'hôte en toute sécurité lors de l'utilisation de pysftp ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-12 18:15:11911parcourir

How Can I Verify Host Keys Securely When Using pysftp?

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

Lorsque vous utilisez pysftp pour établir une connexion SSH, il est essentiel de vérifier la clé d'hôte du serveur par rapport à une source fiable pour assurer une communication sécurisée. Par défaut, pysftp tente de charger les clés d'hôte connues à partir du fichier '~/.ssh/known_hosts'. Cependant, si la clé d'hôte du serveur est stockée dans un emplacement différent, tel que le registre utilisé par PuTTY, il est crucial de concilier cette différence.

Options de vérification de la clé d'hôte dans pysftp

pysftp propose plusieurs options pour gérer la clé d'hôte vérification :

  • Charger les clés d'hôte à partir d'un fichier :

    • Spécifiez le chemin d'accès au fichier known_hosts à l'aide de l'attribut cnopts.knownhosts. Cela chargera les clés d'hôte à partir du fichier spécifié.
  • Utiliser des clés d'hôte personnalisées :

    • Créez un objet HostKeys et ajoutez la clé d'hôte attendue à l'aide de la méthode add(). Cela vous permet de spécifier manuellement la clé d'hôte à vérifier.
  • Désactiver la vérification de la clé d'hôte :

    • Définir les cnopts .hostkeys sur None pour désactiver la vérification de la clé d'hôte. Cependant, cela n'est pas recommandé car cela compromet la sécurité.

Approche recommandée

Pour maintenir la sécurité et garantir une vérification appropriée de la clé d'hôte, il est préférable de charger les clés d'hôte connues à partir d'une source fiable. Si les clés d'hôte sont stockées dans le registre, envisagez d'utiliser un outil tel que ssh-keyscan pour récupérer les informations nécessaires et les stocker dans le format approprié.

Exemple de code

Voici un exemple illustrant l'utilisation de clés d'hôte personnalisées :

import pysftp as sftp

cnopts = pysftp.CnOpts()
host_key = paramiko.RSAKey(data=b'YOUR_HOST_KEY')  # Replace with the server's host key
cnopts.hostkeys.add('my_server.com', 'ssh-rsa', host_key)

with sftp.Connection('my_server.com', username='root', password='*********', cnopts=cnopts) as sftp:
    # Perform file transfer operations, etc.

En gérant soigneusement la vérification de la clé d'hôte, vous pouvez établir un SSH sécurisé connexions et empêcher les attaques de l'homme du milieu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn