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 :
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!