Krajta

Jaký je rozdíl mezi Paramiko a Netmiko?

Jaký je rozdíl mezi Paramiko a Netmiko?

Pokud jde o vytváření sítí, existuje široká škála perspektiv a člověk nemůže zvládnout, jak komunikovat se všemi zařízeními v reálném světě. Všechna síťová zařízení však sdílejí podobné funkce, které jsou po zvládnutí automatizovatelné.

Jak již bylo zmíněno v mých dalších tutoriálech, programátoři jsou líní a vždy se snaží zlepšit efektivitu - a tak dělat co nejméně práce 🙂 -, a pokud jde o automatizaci problémů souvisejících se sítí, mnozí často skočí na šanci.

V dnešním rychlém průvodci vám představím automatizaci SSH pomocí dvou populárních knihoven Pythonu: Paramiko a Netmiko. Vytvoříme jednoduché skripty pythonu pomocí dvou knihoven k automatizaci SSH a interakci se síťovými zařízeními.

Zvolil jsem tento přístup, protože průvodce primárně zaměřený na rozdíly mezi Paramiko a Netmiko by byl příliš krátký - stačila by jednoduchá tabulka - a ne konkrétní. Pokud použijete tento přístup, budete s nimi moci lépe experimentovat a zjistit, co a co dělá.

Začněme:

Co je Paramiko?

Oficiální web definuje Paramiko následovně:

"Paramiko je Python (2.7, 3.4+) implementace protokolu SSHv2, který poskytuje funkce klienta i serveru.“

Doufám, že to bylo jasné. Z podstaty to znamená Paramiko je knihovna pythonu pro interakci s SSH.

Nyní:

Když se chceme přihlásit na server, víme, že jdeme na terminál-cmd, xterm, MobaXterm nebo jen na Gnome Terminal-login, poté provedeme příkazy.

Podívejme se, jak s tím může Paramiko pomoci.

Jak nainstalovat Paramiko

Abyste mohli Paramiko používat, musíme si jej nainstalovat. Na vašem počítači byste měli mít nainstalovaný Python - nejlépe python 2. Pomocí pip zadejte níže uvedený příkaz a nainstalujte Paramiko.

sudo pip install Paramiko
Python -m pip nainstalujte paramiko

Pokud hledáte sestavení ze zdroje, podívejte se do oficiálního úložiště Paramiko GitHub pomocí poskytnutého zdroje:

https: // github.com / paramiko / paramiko

Připojení k SSH pomocí Paramiko

Pro připojení k SSH pomocí Paramiko používáme metodu connect (), která vyžaduje parametr hostname - podporuje také další parametry, ale protože je nevyžadujeme, můžeme je zatím ignorovat.

connect (hostname, port = 22, username = None, password = None, pkey = None, key_filename = None, timeout = None, allow_agent = True, look_for_keys = True, compress = False, sock = None, gss_auth = False, gss_kex = False, gss_deleg_creds = True, gss_host = None, banner_timeout = None, auth_timeout = None, gss_trust_dns = True, passphrase = None, disabled_algorithms = None)

Pomocí této funkce, která je k dispozici v paramiko. Klient.SSHClient.connect (), připojí se k zadanému názvu hostitele a ověří jej. Cílový systém bude zkontrolován oproti stávajícím místním systémovým klíčům (důvěryhodné).

Pokud máte konkrétní hostitelský soubor, můžete použít metodu load_host_keys () a nastavit klienta Paramiko SSH tak, aby do Paramika přidal libovolného neznámého hostitele.AutoAddPolicy (). Pokud používáte klienta v nedůvěryhodných systémech, nepoužívejte paramiko.AutoAddPolicy.

Připojení SSH pomocí hesla

Z metody připojení vidíme, že máme parametry uživatelského jména a hesla, které můžeme použít k připojení k systému. Zvažte níže uvedený kód pro připojení SSH pomocí uživatelského jména a hesla.

z paramiko import util, SSHClient, AutoAddPolicy
klient = SSHClient ()
klient.load_system_host_keys ()
klient.load_host_keys ("/ home / linuxhint /.ssh / known_hosts ")
klient.set_missing_host_key_policy (AutoAddPolicy ())
klient.připojit (název hostitele = "linuxhint.com ", username =" admin ", heslo =" AdminPassword ")
klient.zavřít()

Pokud narazíte na problémy při importu třídy Paramiko SSHClient, přečtěte si následující otázku stackoverflow:

https: // stackoverflow.com / questions / 29378234 / python-import-paramiko-error-cannot-import-name-util

Připojení SSH pomocí klíče

Jak všichni víme, připojení SSH pomocí klíče je bezpečnější než použití surového hesla. Paramiko to ví a umožňuje vám předat soubor klíče a připojit se k cílovému systému.

Zvažte níže uvedený kód.

z paramiko import SSHClient
od paramiko AutoAddPolicy
klient = SSHClient ()
klient.load_system_host_keys ()
klient.load_host_keys ('/ home / linuxhint /.ssh / known_hosts ')
klient.set_missing_host_key_policy (AutoAddPolicy ())
klient.připojit ('linuxhint.com ', username =' admin ', key_filename =' ssh_key.pem ', passphrase =' AdminPassphrase ')
klient.zavřít()

Spouštění příkazů přes SSH

Jakmile získáte přístup do systému pomocí SSH (přes Paramiko), můžete provést řadu příkazů. Zvažte následující fragment kódu:

klient = SSHClient ()
klient.load_system_host_keys ()
klient.připojit ('linuxhint.com ')
stdin, stdout, stderr = klient.exec_command ('bash ")
stdin.zavřít()
stdout.zavřít()
stderr.zavřít()
klient.zavřít()

V tomto okamžiku víte, jak používat knihovnu Paramiko k automatizaci SSH. Jak si dokážete představit, nejedná se o komplexního průvodce Paramiko a nebudeme se ponořit do podrobností souvisejících s tím, co tento nástroj dělá. Cílem bylo ukázat vám jeho implementaci.

Další informace najdete v komplexnějších materiálech, jako jsou:

https: // dokumenty.paramiko.org / en / stabilní /
https: // github.com / paramiko / paramiko

Co je Netmiko?

Netmiko je velmi populární a podobné Paramiku s několika významnými rozdíly:

Při práci v reálných sítích narazíte na různé modely zařízení. Proto potřebujete spolehlivý nástroj, který vám pomůže proces zautomatizovat. V některých případech nemůžete Paramiko používat kvůli omezením podpory zařízení, což vede ke zpožděním a haváriím - podporovaná zařízení můžete zkontrolovat v oficiální dokumentaci. Je také podstatně pomalejší než Netmiko.

Paramiko je spíše obecný modul SSH, který můžete použít k automatizaci konkrétních úkolů SSH. Naproti tomu Netmiko je širší a dobře optimalizované pro správu síťových zařízení, jako jsou přepínače a směrovače.

Abstrakce je další výhodou používání Netmiko. Netmiko poskytuje jednoduchou funkci, kterou můžete použít k deaktivaci stránkování. Například výstup z relace SSH může být více než jedna stránka. Pomocí pravidelných relací SSH budete muset přidat prostor podobný vstupu, aby se zobrazila další stránka. Netmiko vám poskytuje způsob, jak to přepsat.

Výhody Netmiko oproti Paramiko jsou:

Jak nainstalovat Netmiko

Instalace Netmiko je také relativně snadná:

Jediné, co musíte udělat, je zajistit, abyste měli ve svém systému nainstalovaný Python a pip a spustit příkaz:

pip nainstalujte netmiko
python -m pip nainstalovat netmiko

Připojení k SSH pomocí Netmiko

Připojení k relacím SSH zařízení pomocí Netmiko je velmi jednoduché. Nezapomeňte, že Netmiko je optimalizovanější pro zařízení, jako jsou směrovače, a nikoli pro obecné SSH.

Zvažte níže uvedený fragment kódu.

#importujte moduly
z netmiko importovat ConnectHandler
# informace o zařízení ve formátu slovníku.
device_config =
„Device_type“: „cisco_ios“,
„Ip“: „192.168.0.1 ”,
„Username“: „admin“,
„Password“: „heslo“,
„Secret“: „heslo“

connection = ConnectHandler (** device_config)

Pomocí jednoduchého kódu výše získáte připojení SSH k zařízení. Místo předání do slovníku můžete také předat informace o zařízení.

Jakmile máte relaci SSH, můžete provádět příkazy pomocí funkce send_command (). Mezi funkce podporované sítí netmiko patří:

Běžně používané metody Netmiko:

Jak již bylo zmíněno dříve, nejedná se o návod, jak používat Netmiko, ale o jednoduchý směr toho, co Netmiko a Paramiko jsou. Další informace najdete v oficiální dokumentaci.

https: // github.com / ktbyers / netmiko

Závěr

V této rychlé příručce jsme diskutovali o tom, jak používat paramiko pro obecná připojení SSH a správu síťových zařízení Netmiko, což ilustruje rozdíly mezi těmito dvěma.

Na závěr:

Paramiko Netmiko
Užitečné pro obecné použití ssh Nejužitečnější pro konfiguraci síťového zařízení.
Omezená podpora pro širokou škálu síťových zařízení. Podporuje širokou škálu síťových zařízení.
Hry Nejlepší hry pro ruční sledování
Nejlepší hry pro ruční sledování
Oculus Quest nedávno představil skvělou myšlenku ručního sledování bez ovladačů. S neustále se zvyšujícím počtem her a aktivit, které provádějí podpor...
Hry Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Jak zobrazit překrytí OSD v linuxových aplikacích a hrách na celou obrazovku
Hraní her na celou obrazovku nebo používání aplikací v režimu celé obrazovky bez rozptýlení vás mohou odříznout od příslušných systémových informací v...
Hry Top 5 karet pro zachycení hry
Top 5 karet pro zachycení hry
Všichni jsme viděli a milovali streamování her na YouTube. PewDiePie, Jakesepticye a Markiplier jsou jen někteří z nejlepších hráčů, kteří vydělali mi...