1. Installieren Sie
pip install paramiko
2. Importieren Sie das Modul
import paramiko
3. Verwenden Sie
def initSshClinet(): ''‘ Initialisierung, SSH-Verbindungskonto und Passwort, um sich beim Server anzumelden: sshClinet ''' ip = ""#Server-IP-Adresse sshClinet = paramiko.SSHClient() sshClinet.set_missing_host_key_policy(paramiko.AutoAddPolicy()) sshClinet.connect(ip, 22, userName, pw, timeout=360) return sshClinet
def exeCommond(commond): '''Shell-Befehl ausführen'' stdin, stdout, stderr = sshClient.exec_command(command) outStr = stdout.readlines() print("n".join(outStr))
def sftpUploadFile(localPath , remotePath): # Holen Sie sich die SFTP-Instanz. sftp = sshClinet.open_sftp() ) #Führen Sie die Download-Aktion sftp.get (localPath, remotePath) aus
Denken Sie daran, die Verbindung am Ende zu schließen
sshClient.close()
Sie können sich auch mit dem privaten Schlüssel anmelden:
# Konfigurieren Sie den privaten Schlüssel Speicherort der Schlüsseldatei private = paramiko.RSAKey.from_private_key_file('/Users/ch /.ssh/id_rsa')#Instantiate SSHClientclient = paramiko.SSHClient()#Automatisch eine Richtlinie hinzufügen, um den Hostnamen und die Schlüsselinformationen des Servers zu speichern, falls nicht hinzugefügt , Hosts, die nicht mehr in der lokalen know_hosts-Datei aufgezeichnet sind, können keine Verbindung zum Client herstellen set_missing_host_key_policy(paramiko.AutoAddPolicy())#Stellen Sie eine Verbindung zum SSH-Server her und authentifizieren Sie sich mit Benutzername und Passwort client.connect(hostname='10.0 .0.1',port=22,username='root',pkey=private)
Lernenparamiko enthält zwei Kernkomponenten: SSHClient und SFTPClient.
SSHClient funktioniert ähnlich wie der Linux-Befehl ssh. Es handelt sich um eine Kapselung der SSH-Sitzung. Diese Klasse kapselt die Transport-, Kanal- und SFTPClient-Einrichtungsmethode (open_sftp) und wird normalerweise zum Ausführen von Remote-Befehlen verwendet. Die Funktion von SFTPClient ähnelt dem SFTP-Befehl von Linux. Es handelt sich um eine Kapselung des SFTP-Clients und wird zum Implementieren von Remote-Dateivorgängen wie dem Hochladen und Herunterladen von Dateien und der Änderung von Dateiberechtigungen verwendet.
Channel ist eine Art Socket, ein sicherer SSH-Übertragungskanal. Bei Verwendung wird gleichzeitig ein verschlüsselter Tunnel (Kanal) erstellt, der das Objekt ist, das der Client verwalten muss Stellen Sie eine Verbindung mit dem Server her. Verwenden Sie connect()/start_client()/start_server(), um eine Sitzung zu starten
Einführung in die häufig verwendeten Methoden von SSHClientconnect(): um die Verbindung und Authentifizierung des Remote-Servers zu realisieren . Für diese Methode ist nur der Hostname ein erforderlicher Parameter.
Hostname Zielhost für Verbindungsport = SSH_PORT Angegebener Port Benutzername = Keiner Benutzername für die Verifizierung Passwort = Keines Benutzerpasswort für die Verifizierung pkey = Keine Private Schlüsselmethode für die Authentifizierung key_filename = Keine Ein Dateiname oder eine Dateiliste, geben Sie das Zeitlimit für die private Schlüsseldatei an =Keine optionales TCP-Verbindungs-Timeout. Allow_agent=True, ob eine Verbindung zum SSH-Agenten zugelassen werden soll. Der Standardwert ist True. Allow look_for_keys=True, ob nach privaten Schlüsseldateien in ~/.ssh gesucht werden soll. Der Standardwert ist True Komprimierung
set_missing_host_key_policy(): Legen Sie die Antwortrichtlinie fest, wenn der Remote-Server nicht in der Datei know_hosts aufgezeichnet ist. Übergeben Sie die Unterklasse von MissingHostKeyPolicy. Derzeit werden drei Strategien unterstützt:
Legen Sie die Strategie fest, wenn der verbundene Remote-Host keinen lokalen Hostschlüssel oder HostKeys-Objekt hat. Derzeit werden drei Strategien unterstützt:
AutoAddPolicy fügt automatisch den Hostnamen hinzu und Hostschlüssel für das lokale HostKeys-Objekt, hängt nicht von der Konfiguration von load_system_host_key ab. Das heißt, wenn Sie eine neue SSH-Verbindung herstellen, müssen Sie zur Bestätigung weder „Ja“ noch „Nein“ eingeben. WarningPolicy wird verwendet, um Python-Warnungen für einen unbekannten Hostschlüssel aufzuzeichnen. Und akzeptieren Sie, die Funktion ähnelt AutoAddPolicy, fordert jedoch bei neuen Verbindungen auf, dass RejectPolicy unbekannte Hostnamen und Schlüssel automatisch ablehnt, basierend auf der Konfiguration von load_system_host_key. Dies ist die Standardoption
exec_command(): Eine Methode zum Ausführen von Linux-Befehlen auf einem Remote-Server.
open_sftp(): Erstellen Sie eine SFTP-Sitzung basierend auf der aktuellen SSH-Sitzung. Diese Methode gibt ein SFTPClient-Objekt zurück.
Einführung in gängige Methoden von SFTPClientfrom_transport(cls,t): Erstellen Sie einen verbundenen SFTP-Client-Kanal put(localpath, remotepath, callback=None, bestätigen=True): Lokale Dateien auf den Server hochladen Parameter bestätigen: Ob um die stat()-Methode aufzurufen, um den Dateistatus zu überprüfen und das Ergebnis von ls -l get(remotepath, localpath, callback=None) zurückzugeben: Laden Sie die Datei vom Server auf den lokalen Server herunter mkdir(): Erstellen Sie das Verzeichnis auf dem Server Remove(): Auf dem Server löschen. Verzeichnis rename(): Das Verzeichnis auf dem Server umbenennen. Stat(): Den Dateistatus des Servers anzeigen. listdir(): Die Dateien im Serververzeichnis auflisten
Das obige ist der detaillierte Inhalt vonSo implementieren Sie automatisierten Betrieb und Wartung in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!