Maison  >  Article  >  développement back-end  >  Comment effectuer des transferts de fichiers SCP en Python à l'aide de Paramiko ?

Comment effectuer des transferts de fichiers SCP en Python à l'aide de Paramiko ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-31 18:06:00836parcourir

How to perform SCP file transfers in Python using Paramiko?

Transfert de fichiers SCP Python avec SSH

Question :

Comment puis-je effectuer des transferts de fichiers SCP en Python à l'aide d'un fichier clean et efficace ? La méthode os.system() est un hack et ne fonctionne pas sur plusieurs plates-formes et ne gère pas SSH sans mot de passe.

Module SCP Paramiko :

Paramiko fournit un excellent Python module spécifiquement conçu pour les transferts SCP : le paramiko.scp.SCPClient. Il offre une interface conviviale pour des opérations sécurisées.

Exemple d'utilisation :

<code class="python">import paramiko
from scp import SCPClient

# Establish SSH Connection
ssh = createSSHClient(server, port, user, password)

# Initialize SCP Client
scp = SCPClient(ssh.get_transport())

# SCP Operations
scp.get('/etc/local/filename', '/etc/remote/filename')  # Server to Local
scp.put('/etc/local/filename', '/etc/remote/filename')  # Local to Server</code>

Gestion des clés :

La fonction createSSHClient() prend en charge la gestion des clés via les méthodes load_system_host_keys() et set_missing_host_key_policy(). De plus, le constructeur SCPClient() permet de spécifier le chemin du fichier de clé ou d'utiliser des clés système :

<code class="python"># Use System Keys
client = scp.Client(host=host, user=user, keyfile=keyfile)

# Use Password
client = scp.Client(host=host, user=user, password=password)</code>

Avantages :

  • Support multiplateforme
  • Interface propre et structurée
  • Prend en charge la clé gestion
  • Pas besoin d'implémenter SCP vous-même

Cette approche fournit une solution robuste et personnalisable pour des transferts de fichiers SCP transparents en Python.

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