Wenn es um Vernetzung geht, gibt es eine Vielzahl von Perspektiven, und man kann nicht beherrschen, wie man mit allen Geräten in der realen Welt interagiert. Alle Netzwerkgeräte teilen jedoch eine ähnliche Funktionalität, die beim Mastering automatisch sind.
Wie in meinen anderen Tutorials erwähnt, sind Programmierer faul und versuchen immer, die Effizienz zu verbessern.
Im heutigen Quick Guide werde ich Ihnen die Automatisierung von SSH mit zwei beliebten Python -Bibliotheken vorstellen: Paramiko Und Netmiko. Wir erstellen einfache Python -Skripte mit den beiden Bibliotheken, um SSH zu automatisieren und mit Netzwerkgeräten zu interagieren.
Ich wähle diesen Ansatz, weil ein Leitfaden, der sich hauptsächlich auf die Unterschiede zwischen Paramiko und Netmiko konzentrierte. Wenn Sie diesen Ansatz verfolgen, können Sie besser mit ihnen experimentieren und sehen, was was und wie macht.
Lass uns anfangen:
Was ist Paramiko?
Die offizielle Website definiert Paramiko wie folgt:
„Paramiko ist ein Python (2.7, 3.4+) Implementierung des SSHV2 -Protokolls, das sowohl Client- als auch Serverfunktionalität bietet.”
Ich hoffe das war klar. Fundamental bedeutet es Paramiko ist eine Python -Bibliothek für die Interaktion mit SSH.
Jetzt:
Wenn wir uns bei einem Server anmelden wollen, wissen wir, dass wir zum Terminal-CMD, Xterm, Mobaxterm oder nur zum Gnome-Terminal-Login gehen, dann die Befehle ausführen.
Mal sehen, wie Paramiko dabei helfen kann.
So installieren Sie Paramiko
Um Paramiko zu verwenden, müssen wir es installieren. Sie sollten Python haben - vorzugsweise Python 2 - auf Ihrem Computer installiert. Geben Sie mit PIP den folgenden Befehl ein, um Paramiko zu installieren.
sudo pip installieren paramiko
Python -m PIP Installation Paramiko
Wenn Sie aus der Quelle erstellen möchten, lesen Sie das offizielle Paramiko Github -Repository mit der bereitgestellten Ressource:
https: // github.com/paramiko/paramiko
Verbindung zu SSH mit Paramiko herstellen
Um mit Paramiko eine Verbindung zu SSH herzustellen, verwenden wir die Connect () -Methode, für die das Hostname-Parameter-It auch andere Parameter unterstützt. Da wir diese jedoch nicht benötigen, können wir sie vorerst ignorieren.
Connect (Hostname, Port = 22, userername = none, password = none, pkey = none, key_fileName = none, timeout = none, degit_agent = true, Look_FOR_KEYS = true, compress = false, sock = none, gss_auth = false, gss_kex = False, gss
Verwenden dieser Funktion, die in Paramiko verfügbar ist. Klient.Sshclient.Connect () stellt eine Verbindung zum angegebenen Hostnamen her und authentifiziert ihn. Das Zielsystem wird mit den vorhandenen lokalen Systemschlüssel (Trusted) überprüft.
Wenn Sie eine bestimmte Hostdatei haben, können Sie die Methode load_host_keys () verwenden und den Paramiko SSH -Client festlegen, um einen unbekannten Host zu Paramiko hinzuzufügen.Autoaddpolicy (). Wenn Sie den Client in nicht vertrauenswürdigen Systemen verwenden, vermeiden Sie die Verwendung des Paramiko.Autoaddpolicy.
Verbinden Sie SSH mit einem Passwort
Aus der Connect -Methode können wir feststellen, dass wir über die Benutzernamen- und Kennwortparameter verfügen, mit denen wir eine Verbindung zum System herstellen können. Betrachten Sie den folgenden Code, um SSH über Benutzername und Passwort zu verbinden.
von Paramiko Import util, sshclient, autoaddpolicyWenn Sie beim Importieren der Paramiko SSHClient -Klasse auf Probleme stoßen, lesen Sie die folgende Stackoverflow -Frage:
https: // stackoverflow.com/Fragen/29378234/Python-Import-Paramiko-Error-Cannot-Import-Name-Util
SSH über Key anschließen
Wie wir alle wissen, ist das Anschließen von SSH über Schlüssel sicherer als ein Rohkennwort zu verwenden. Paramiko weiß dies und ermöglicht es Ihnen, die Schlüsseldatei zu übergeben und eine Verbindung zum Zielsystem herzustellen.
Betrachten Sie den folgenden Code.
Aus Paramiko import SSHClient, autoaddpolicyAusführen von Befehlen über SSH
Sobald Sie über SSH (über Paramiko) Zugriff auf das System erhalten haben, können Sie eine Reihe von Befehlen ausführen. Betrachten Sie den folgenden Code -Snippet:
Aus Paramiko import SSHClientZu diesem Zeitpunkt wissen Sie, wie Sie die Paramiko -Bibliothek verwenden, um SSH zu automatisieren. Wie Sie sich vorstellen können, ist dies kein umfassender Paramiko. Ziel war es, Ihnen seine Implementierung zu zeigen.
Weitere Informationen finden Sie unter umfassenderen Materialien wie:
https: // docs.Paramiko.org/en/stabil/
https: // github.com/paramiko/paramiko
Was ist Netmiko?
Netmiko ist sehr beliebt und ähnelt Paramiko mit einigen signifikanten Unterschieden:
Wenn Sie an realen Netzwerken arbeiten, werden Sie auf verschiedene Gerätemodelle stoßen. Daher benötigen Sie ein zuverlässiges Tool, mit dem Sie den Prozess automatisieren können. In einigen Fällen können Sie Paramiko aufgrund von Einschränkungen der Geräteunterstützung nicht verwenden, was zu Verzögerungen und Abstürzen führt, die die unterstützten Geräte in der offiziellen Dokumentation überprüfen können. Es ist auch erheblich langsamer als Netmiko.
Paramiko ist eher ein generisches SSH -Modul, mit dem Sie bestimmte SSH -Aufgaben automatisieren können. Im Gegensatz dazu ist Netmiko breiter und gut optimiert für die Verwaltung von Netzwerkgeräten wie Switches und Routern.
Abstraktion ist der andere Vorteil der Verwendung von NetMiko. Netmiko bietet eine einfache Funktion, mit der Sie Paging deaktivieren können. Beispielsweise könnte eine Ausgabe aus der SSH -Sitzung mehr als eine Seite betragen. Mit regelmäßigen SSH-Sitzungen müssen Sie einen eingabefreundlichen Raum hinzufügen, um die nächste Seite anzuzeigen. Netmiko bietet Ihnen eine Möglichkeit, dies zu überschreiben.
Die Vorteile von Netmiko gegenüber Paramiko sind:
So installieren Sie NetMiko
Die Installation von NetMiko ist ebenfalls relativ einfach:
Sie müssen lediglich sicherstellen, dass Sie Python und Pip auf Ihrem System installiert haben und den Befehl ausführen:
PIP Installieren Sie NetMiko
Python -M PIP Installieren Sie NetMiko
Verbindung zu SSH über NetMiko herstellen
Die Verbindung zu Geräte -SSH -Sitzungen mit NetMiko ist sehr einfach. Denken Sie daran, dass Netmiko für Geräte wie Router und nicht für nicht generische SSH optimiert ist.
Betrachten Sie den Code -Snippet unten.
# Module importierenMit dem obigen einfachen Code haben Sie eine SSH -Verbindung zum Gerät. Sie können die Geräteinformationen auch direkt übergeben, anstatt sie an ein Wörterbuch weiterzugeben.
Sobald Sie eine SSH -Sitzung haben, können Sie Befehle mit der Funktion "send_command () ausführen. Von NetMiko unterstützte Funktionen umfassen:
Netmiko häufig verwendete Methoden:
Wie bereits erwähnt, ist dies keine Anleitung zur Verwendung von NetMiko, sondern eine einfache Richtung dessen, was Netmiko und Paramiko sind. Weitere Informationen finden Sie in der offiziellen Dokumentation.
https: // github.com/ktbyers/netmiko
Abschluss
In diesem schnellen Handbuch diskutierten wir, wie Paramiko für generische SSH -Verbindungen und NetMiko -Netzwerk -Geräteverwaltung verwendet werden, um die Unterschiede zwischen den beiden zu veranschaulichen.
Schlussfolgern:
Paramiko | Netmiko |
---|---|
Nützlich für die generische SSH -Verwendung | Am nützlichsten für die Konfiguration der Netzwerkgeräte. |
Begrenzte Unterstützung für eine breite Palette von Netzwerkgeräten. | Unterstützt eine breite Palette von Netzwerkgeräten. |