Python

Kāda ir atšķirība starp Paramiko un Netmiko?

Kāda ir atšķirība starp Paramiko un Netmiko?

Runājot par tīklu veidošanu, ir plašs perspektīvu spektrs, un nevar apgūt, kā mijiedarboties ar visām ierīcēm reālajā pasaulē. Tomēr visām tīkla ierīcēm ir līdzīga funkcionalitāte, kas, apgūstot, ir automātiska.

Kā minēts manās citās apmācībās, programmētāji ir slinki un vienmēr vēlas uzlabot efektivitāti, tādējādi darot vismazāk darba 🙂 - un, kad runa ir par ar tīklu saistītu problēmu automatizēšanu, daudzi bieži izvēlas iespēju.

Šodienas ātrajā ceļvedī es jūs iepazīstināšu ar SSH automatizēšanu, izmantojot divas populāras Python bibliotēkas: Paramiko un Netmiko. Mēs izveidosim vienkāršus pitona skriptus, izmantojot abas bibliotēkas, lai automatizētu SSH un mijiedarbotos ar tīkla ierīcēm.

Es izvēlos šo pieeju, jo ceļvedis, kas galvenokārt koncentrēts uz atšķirībām starp Paramiko un Netmiko, būtu pārāk īss - pietiktu ar vienkāršu tabulu un nekonkrētu. Izmantojot šo pieeju, jūs varēsiet labāk eksperimentēt ar viņiem un redzēt, kurš un ko dara.

Sāksim:

Kas ir Paramiko?

Oficiālajā vietnē Paramiko ir definēts šādi:

“Paramiko ir pitons (2.7, 3.4+) SSHv2 protokola ieviešana, kas nodrošina gan klienta, gan servera funkcionalitāti.”

Es ceru, ka tas bija skaidrs. Pamatā tas nozīmē Paramiko ir pitona bibliotēka mijiedarbībai ar SSH.

Tagad:

Kad mēs vēlamies pieteikties serverī, mēs zinām, ka mēs ejam uz terminal-cmd, xterm, MobaXterm vai vienkārši Gnome Terminal-login, pēc tam izpildām komandas.

Apskatīsim, kā Paramiko var palīdzēt šajā jautājumā.

Kā instalēt Paramiko

Lai izmantotu Paramiko, mums tas ir jāinstalē. Jūsu datorā jābūt instalētam Python - vēlams, python 2. Izmantojot pip, ievadiet komandu zemāk, lai instalētu Paramiko.

sudo pip instalējiet Paramiko
Python -m pip instalē paramiko

Ja vēlaties veidot no avota, skatiet oficiālo Paramiko GitHub repozitoriju, izmantojot norādīto resursu:

https: // github.com / paramiko / paramiko

Savienojums ar SSH, izmantojot Paramiko

Lai izveidotu savienojumu ar SSH, izmantojot Paramiko, mēs izmantojam metodi connect (), kurai nepieciešams parametrs resursdatora nosaukums - tas atbalsta arī citus parametrus, taču, tā kā tie nav nepieciešami, mēs tos tagad varam ignorēt.

savienot (resursdatora nosaukums, ports = 22, lietotājvārds = nav, parole = nav, pkey = nav, key_filename = nav, taimauts = nav, allow_agent = True, look_for_keys = True, compress = False, zeķe = None, gss_auth = False, gss_kex = Nepatiesa, gss_deleg_creds = True, gss_host = Nav, banner_timeout = Nav, auth_timeout = Nav, gss_trust_dns = True, parole = None, disabled_algorithms = Nav)

Izmantojot šo funkciju, kas ir pieejama paramiko. Klients.SSHClient.connect (), izveido savienojumu ar norādīto resursdatora nosaukumu un to autentificē. Mērķa sistēma tiek pārbaudīta, ņemot vērā esošās vietējās sistēmas atslēgas (uzticamas).

Ja jums ir noteikts resursdatora fails, varat izmantot metodi load_host_keys () un iestatīt Paramiko SSH klientu, lai paramiko pievienotu nezināmu resursdatoru.AutoAddPolicy (). Ja izmantojat klientu neuzticamās sistēmās, izvairieties no paramiko lietošanas.AutoAddPolicy.

SSH savienošana ar paroli

No savienojuma metodes mēs varam redzēt, ka mums ir lietotājvārda un paroles parametri, kurus mēs varam izmantot, lai izveidotu savienojumu ar sistēmu. Apsveriet zemāk esošo kodu, lai savienotu SSH, izmantojot lietotājvārdu un paroli.

no paramiko import util, SSHClient, AutoAddPolicy
klients = SSHClient ()
klients.load_system_host_keys ()
klients.load_host_keys ("/ home / linuxhint /.ssh / zināmi_zimnieki ")
klients.set_missing_host_key_policy (AutoAddPolicy ())
klients.savienot (resursdatora nosaukums = "linuxhint.com ", username =" admin ", password =" AdminPassword ")
klients.aizvērt ()

Ja rodas problēmas, importējot Paramiko SSHClient klasi, skatiet šo jautājumu:

https: // stackoverflow.com / questions / 29378234 / python-import-paramiko-error-can't-import-name-util

SSH savienošana, izmantojot atslēgu

Kā mēs visi zinām, SSH savienošana ar atslēgu ir drošāka nekā neapstrādātas paroles izmantošana. Paramiko to zina un ļauj jums nodot atslēgas failu un izveidot savienojumu ar mērķa sistēmu.

Apsveriet zemāk redzamo kodu.

no paramiko importa SSHClient
no paramiko AutoAddPolicy
klients = SSHClient ()
klients.load_system_host_keys ()
klients.load_host_keys ('/ home / linuxhint /.ssh / zināmi_zimnieki ')
klients.set_missing_host_key_policy (AutoAddPolicy ())
klients.savienot ('linuxhint.com ', lietotājvārds =' admin ', key_filename =' ssh_key.pem ', passphrase =' AdminPassphrase ')
klients.aizvērt ()

Komandu vadīšana, izmantojot SSH

Kad esat ieguvis piekļuvi sistēmai, izmantojot SSH (izmantojot Paramiko), varat izpildīt virkni komandu. Apsveriet šo koda fragmentu:

klients = SSHClient ()
klients.load_system_host_keys ()
klients.savienot ('linuxhint.com ')
stdin, stdout, stderr = klients.exec_command ('bash')
stdin.aizvērt ()
stdout.aizvērt ()
stderr.aizvērt ()
klients.aizvērt ()

Šajā brīdī jūs zināt, kā izmantot Paramiko bibliotēku, lai automatizētu SSH. Kā jūs varat iedomāties, tas nav visaptverošs Paramiko ceļvedis, un mēs neiedziļināmies detaļās, kas saistītas ar rīka darbību. Mērķis bija parādīt tā ieviešanu.

Lai iegūtu papildinformāciju, lūdzu, skatiet plašākus materiālus, piemēram:

https: // docs.paramiko.org / lv / stabils /
https: // github.com / paramiko / paramiko

Kas ir Netmiko?

Netmiko ir ļoti populārs un līdzīgs Paramiko ar dažām būtiskām atšķirībām:

Strādājot reālās pasaules tīklos, jūs sastapsieties ar dažādiem ierīču modeļiem. Tādējādi jums ir nepieciešams uzticams rīks, kas var palīdzēt jums procesu automatizēt. Dažos gadījumos jūs nevarat izmantot Paramiko ierīču atbalsta ierobežojumu dēļ, kas noved pie atpalicības un avārijām - atbalstītās ierīces varat pārbaudīt oficiālajā dokumentācijā. Tas ir arī ievērojami lēnāks nekā Netmiko.

Paramiko drīzāk ir vispārējs SSH modulis, kuru varat izmantot, lai automatizētu noteiktus SSH uzdevumus. Turpretī Netmiko ir plašāks un labi optimizēts, lai pārvaldītu tīkla ierīces, piemēram, slēdžus un maršrutētājus.

Abstrakcija ir vēl viena Netmiko izmantošanas priekšrocība. Netmiko nodrošina vienkāršu funkciju, kuru varat izmantot, lai atspējotu lapošanu. Piemēram, SSH sesijas izvade var būt vairāk nekā viena lapa. Izmantojot regulāras SSH sesijas, jums būs jāpievieno ievadei līdzīga vieta, lai parādītu nākamo lapu. Netmiko sniedz jums iespēju to ignorēt.

Netmiko priekšrocības salīdzinājumā ar Paramiko ir:

Kā instalēt Netmiko

Netmiko instalēšana ir arī salīdzinoši vienkārša:

Viss, kas jums jādara, ir pārliecināties, vai sistēmā ir instalēts Python un pip, un izpildiet komandu:

pip instalēt netmiko
python -m pip instalēt netmiko

Savienojuma izveide ar SSH, izmantojot Netmiko

Savienošana ar ierīces SSH sesijām, izmantojot Netmiko, ir ļoti vienkārša. Atcerieties, ka Netmiko ir vairāk optimizēts tādām ierīcēm kā maršrutētāji, nevis vispārējs SSH.

Apsveriet tālāk redzamo koda fragmentu.

#import moduļi
no netmiko importa ConnectHandler
# ierīces informācija vārdnīcas formātā.
device_config =
“Device_type”: “cisco_ios”,
“Ip”: “192.168. lpp.0.1 ”,
“Lietotājvārds”: “administrators”,
“Parole”: “parole”,
“Noslēpums”: “parole”

savienojums = ConnectHandler (** device_config)

Izmantojot vienkāršo kodu iepriekš, jums būs SSH savienojums ar ierīci. Varat arī tieši pārsūtīt ierīces informāciju, nevis nodot to vārdnīcai.

Pēc SSH sesijas jūs varat izpildīt komandas, izmantojot funkciju send_command (). Netmiko atbalstītās funkcijas ietver:

Netmiko bieži izmantotās metodes:

Kā minēts iepriekš, tas nav ceļvedis par Netmiko lietošanu, bet vienkāršs norādījums par to, kas ir Netmiko un Paramiko. Plašāku informāciju skatiet oficiālajā dokumentācijā.

https: // github.com / ktbyers / netmiko

Secinājums

Šajā ātrajā ceļvedī mēs apspriedām, kā izmantot paramiko vispārējiem SSH savienojumiem un Netmiko tīkla ierīču pārvaldībai, ilustrējot atšķirības starp abiem.

Secināt:

Paramiko Netmiko
Noderīga vispārīgai ssh lietošanai Visnoderīgākais tīkla ierīces konfigurēšanai.
Ierobežots atbalsts plaša spektra tīkla ierīcēm. Atbalsta plašu tīkla ierīču klāstu.
Kā parādīt OSD pārklājumu pilnekrāna Linux lietotnēs un spēlēs
Spēlējot pilnekrāna spēles vai lietojot lietotnes bez atrautības pilnekrāna režīmā, jūs varat izslēgt no attiecīgās sistēmas informācijas, kas redzama...
Top 5 spēļu tveršanas kartes
Mēs visi esam redzējuši un mīlējuši straumēšanas spēles pakalpojumā YouTube. PewDiePie, Jakesepticye un Markiplier ir tikai daži no labākajiem spēlētā...
Kā izstrādāt spēli Linux
Pirms desmit gadiem maz Linux lietotāju varētu paredzēt, ka viņu iecienītā operētājsistēma kādu dienu būs populāra spēļu platforma komerciālām videosp...