Maison > Article > développement back-end > Comment implémenter l'exploitation et la maintenance automatisées en python
1. Installez
pip install paramiko
2. Module d'importation
import paramiko
3. Utilisez
def initSshClinet() : ''' Initialisation, mot de passe du compte de connexion SSH pour vous connecter au serveur : return : sshClinet. ''' ip = ""#Adresse IP du serveur sshClinet = paramiko.SSHClient() sshClinet.set_missing_host_key_policy(paramiko.AutoAddPolicy()) sshClinet.connect(ip, 22, userName, pw, timeout=360) return sshClinet
def exeCommond (commond): '''Exécuter la commande shell''' stdin, stdout, stderr = sshClient.exec_command(command) outStr = stdout.readlines() print("n".join(outStr))
def sftpUploadFile(localPath, remotePath): # Récupérez l'instance SFTP sftp = sshClinet.open_sftp() #Effectuez l'action de téléchargement sftp.put(localPath, remotePath)
def sftpDownloadFile(localPath, remotePath): #Récupérez l'instance SFTP sftp = sshClinet.open_sftp() #Effectuez l'action de téléchargement sftp.get (localPath, remotePath)
N'oubliez pas de fermer la connexion à la fin
sshClient.close()
Vous pouvez également utiliser la clé privée pour vous connecter :
# Configurer la clé privée emplacement du fichier private = paramiko.RSAKey.from_private_key_file('/Users/ch /.ssh/id_rsa')#Instancier SSHClientclient = paramiko.SSHClient()#Ajouter automatiquement une stratégie pour enregistrer le nom d'hôte et les informations clés du serveur S'ils ne sont pas ajoutés, les hôtes qui ne sont plus enregistrés dans le fichier Know_hosts local ne pourront pas se connecter au client. set_missing_host_key_policy(paramiko.AutoAddPolicy())#Connectez-vous au serveur SSH et authentifiez-vous avec le nom d'utilisateur et le mot de passe client.connect(hostname='10.0. 0.1',port=22,username='root',pkey=private)
Apprendre
paramiko contient deux composants principaux : SSHClient et SFTPClient.
SSHClient fonctionne de manière similaire à la commande Linux ssh. Il s'agit d'une encapsulation de la session SSH. Cette classe encapsule la méthode d'établissement du transport, du canal et de SFTPClient (open_sftp), et est généralement utilisée pour exécuter des commandes à distance. La fonction de SFTPClient est similaire à la commande sftp de Linux. Il s'agit d'une encapsulation du client SFTP et est utilisée pour implémenter des opérations sur les fichiers distants, telles que le téléchargement et la modification des autorisations de fichiers.
Channel est une sorte de Socket, un canal de transmission SSH sécurisé. Le transport est une session cryptée. Lorsqu'il est utilisé, un tunnel (canal) crypté sera créé simultanément. Ce tunnel est appelé ChannelSession, qui est l'objet que le client doit maintenir. une connexion avec le Serveur. Utilisez connect()/start_client()/start_server() pour démarrer une session
Introduction aux méthodes couramment utilisées de SSHClient
connect() : pour réaliser la connexion et l'authentification du serveur distant . Pour cette méthode, seul le nom d'hôte est un paramètre obligatoire.
hostname Hôte cible pour la connexion port=SSH_PORT Port spécifié username=Aucun Nom d'utilisateur pour la vérification password=Aucun Mot de passe utilisateur pour la vérification pkey=Aucun Méthode de clé privée pour l'authentification key_filename=Aucun Un nom de fichier ou une liste de fichiers, spécifiez le délai d'attente du fichier de clé privée= Aucun délai d'attente de connexion TCP facultatif Allow_agent=True s'il faut autoriser la connexion à l'agent SSH, la valeur par défaut est True Allow look_for_keys=True s'il faut rechercher des fichiers de clé privée dans ~/.ssh, la valeur par défaut est True Allow compress=False s'il faut activer la compression
set_missing_host_key_policy() : Définissez la politique de réponse lorsque le serveur distant n'est pas enregistré dans le fichier know_hosts. Passez dans la sous-classe de MissingHostKeyPolicy. Actuellement, trois stratégies sont prises en charge :
Définissez la stratégie lorsque l'hôte distant connecté n'a pas de clé d'hôte locale ou d'objet HostKeys. Actuellement, trois stratégies sont prises en charge :
AutoAddPolicy ajoute automatiquement le nom d'hôte. et la clé d'hôte vers l'objet HostKeys local, ne dépend pas de la configuration de load_system_host_key. Autrement dit, lors de l'établissement d'une nouvelle connexion ssh, vous n'avez pas besoin de saisir oui ou non pour confirmer. WarningPolicy est utilisé pour enregistrer les avertissements Python pour une clé d'hôte inconnue. Et acceptez, la fonction est similaire à AutoAddPolicy, mais elle demandera que les nouvelles connexions RejectPolicy rejettent automatiquement les noms d'hôtes et les clés inconnus, en s'appuyant sur la configuration de load_system_host_key. C'est l'option par défaut
exec_command() : Une méthode pour exécuter des commandes Linux sur un serveur distant.
open_sftp() : Créez une session sftp basée sur la session ssh en cours. Cette méthode renvoie un objet SFTPClient.
Introduction aux méthodes courantes de SFTPClient
from_transport(cls,t) : Créer un canal client SFTP connecté put(localpath, remotepath, callback=None, confirm=True) : Télécharger des fichiers locaux sur le serveur Confirmation du paramètre : Si pour appeler la méthode stat() pour vérifier l'état du fichier et renvoyer le résultat de ls -l get(remotepath, localpath, callback=None) : télécharger le fichier du serveur vers le local mkdir() : créer le répertoire sur le serveur remove() : supprimer sur le répertoire du serveur rename() : renommer le répertoire sur le serveur stat() : afficher l'état du fichier du serveur listdir() : lister les fichiers dans le répertoire du serveur
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!