Når det gjelder nettverk, er det et bredt spekter av perspektiver, og man kan ikke mestre hvordan man kan samhandle med alle enhetene i den virkelige verden. Imidlertid deler alle nettverksenheter lignende funksjonalitet som, når de mestres, er automatiske.
Som nevnt i mine andre opplæringsprogrammer, er programmerere late og ønsker alltid å forbedre effektiviteten-og gjør minst mulig arbeid 🙂-, og når det gjelder automatisering av nettverksrelaterte problemer, hopper mange ofte på sjansen.
I dagens raske guide, vil jeg introdusere deg for å automatisere SSH ved å bruke to populære Python -biblioteker: Paramiko og Netmiko. Vi vil lage enkle Python -skript ved hjelp av de to bibliotekene for å automatisere SSH og samhandle med nettverksenheter.
Jeg velger denne tilnærmingen fordi en guide først og fremst fokuserer på forskjellene mellom paramiko og netmiko ville være for kort-en enkel tabell ville være tilstrekkelig-og ikke-betong. Ved å ta denne tilnærmingen, vil du være bedre i stand til å eksperimentere med dem og se hva som gjør hva og hvordan.
La oss komme i gang:
Hva er Paramiko?
Det offisielle nettstedet definerer Paramiko som følger:
“Paramiko er en pyton (2.7, 3.4+) Implementering av SSHV2 -protokollen som gir både klient- og serverfunksjonalitet.”
Jeg håper det var klart. Grunnlaget betyr det Paramiko er et Python -bibliotek for å samhandle med SSH.
Nå:
Når vi vil logge på en server, vet vi at vi går til terminal-CMD, XTERM, MobaxTerm eller bare Gnome Terminal-Login, og utfører deretter kommandoer.
La oss se hvordan Paramiko kan hjelpe med det.
Hvordan installere Paramiko
For å bruke Paramiko, må vi installere den. Du burde ha Python - helst Python 2 - installert på maskinen din. Bruk Pip, skriv inn kommandoen nedenfor for å installere Paramiko.
sudo pip install paramiko
Python -m pip install paramiko
Hvis du ønsker å bygge fra kilden, kan du se det offisielle Paramiko GitHub -depotet ved å bruke den medfølgende ressursen:
https: // github.com/paramiko/paramiko
Koble til SSH ved hjelp av Paramiko
For å koble til SSH ved hjelp av Paramiko, bruker vi Connect () -metoden, som krever vertsnavn-parameteren-det støtter også andre parametere, men siden vi ikke krever dem, kan vi ignorere dem for nå.
Connect (hostname, port = 22, brukernavn = ingen, passord = ingen, pkey = ingen, key_filename = ingen, timeout = ingen, tillatt_agent = true, look_for_keys = true, komprimerer = falsk, sokk = ingen, gss_auth = falsk, gss_kex = FALSE, GSS_DELEG_CREDS = TRUE, GSS_HOST = ingen, banner_timeout = ingen, autor_timeout = ingen, gss_trust_dns = true, passphrase = ingen, deaktivert_algoritmer = ingen)
Bruke denne funksjonen, som er tilgjengelig i Paramiko. Klient.Sshclient.koble til (), kobles til det spesifiserte vertsnavnet, og autentiserer det. Målsystemet blir sjekket mot de eksisterende lokale systemnøklene (pålitelig).
Hvis du har en spesifikk vertsfil, kan du bruke Load_Host_Keys () -metoden og angi Paramiko SSH -klienten til å legge til enhver ukjent vert til Paramiko.Autoaddpolicy (). Hvis du bruker klienten i upålitelige systemer, unngå å bruke paramikoen.Autoaddpolicy.
Koble til SSH med et passord
Fra Connect -metoden kan vi se at vi har brukernavn og passordparametere som vi kan bruke for å koble oss til systemet. Vurder koden nedenfor for å koble SSH via brukernavn og passord.
Fra Paramiko import util, sshclient, autoaddpolicyHvis du møter problemer når du importerer Paramiko SSHClient -klasse, kan du henvise til følgende StackOverflow -spørsmål:
https: // stackoverflow.com/spørsmål/29378234/python-import-paramiko-error-cannot-import-name-util
Koble SSH via tast
Som vi alle vet, er det sikrere å koble SSH via nøkkel enn å bruke et rått passord. Paramiko vet dette og lar deg passere nøkkelfilen og koble til målsystemet.
Vurder koden nedenfor.
fra Paramiko import sshclient, autoaddpolicyKjører kommandoer over SSH
Når du har fått tilgang til systemet ved hjelp av SSH (over paramiko), kan du utføre en serie kommandoer. Tenk på følgende kodebit:
fra Paramiko import sshclientPå dette tidspunktet vet du hvordan du bruker Paramiko -biblioteket for å automatisere SSH. Som du kan forestille deg, er dette ikke en omfattende paramiko -guide, og vi dykker ikke inn i detaljer relatert til hva verktøyet gjør. Målet var å vise deg implementeringen.
For mer informasjon, se mer omfattende materialer som:
https: // dokumenter.paramiko.org/en/stabil/
https: // github.com/paramiko/paramiko
Hva er Netmiko?
Netmiko er veldig populær og lik Paramiko med noen få betydelige forskjeller:
Når du jobber med den virkelige nettverk, vil du komme over forskjellige enhetsmodeller. Dermed trenger du et pålitelig verktøy som kan hjelpe deg med å automatisere prosessen. I noen tilfeller kan du ikke bruke Paramiko på grunn av begrensninger på enhetsstøtting, noe som fører til etterslep og krasjer-du kan sjekke de støttede enhetene på den offisielle dokumentasjonen. Det er også betydelig tregere enn Netmiko.
Paramiko er mer en generisk SSH -modul som du kan bruke til å automatisere spesifikke SSH -oppgaver. Derimot er NetMiko bredere og godt optimalisert for å administrere nettverksenheter som brytere og rutere.
Abstraksjon er den andre fordelen ved å bruke NetMiko. Netmiko gir en enkel funksjon du kan bruke til å deaktivere personsøk. For eksempel kan en utgang fra SSH -økten være mer enn en side. Ved hjelp av vanlige SSH-økter må du legge til et inngangslignende rom for å vise neste side. Netmiko gir deg en måte å overstyre dette på.
Fordeler med NetMiko fremfor Paramiko er:
Hvordan installere NetMiko
Å installere NetMiko er også relativt enkelt:
Alt du trenger å gjøre er å sikre at du har Python og Pip installert på systemet ditt og utfører kommandoen:
Pip installer NetMiko
python -m pip install netmiko
Koble til SSH ved hjelp av NetMiko
Det er veldig enkelt å koble til enhetens SSH -økter ved hjelp av NetMiko. Husk at NetMiko er mer optimalisert for enheter som rutere og ikke generisk SSH.
Vurder kodebiten nedenfor.
# ImportmodulerVed å bruke den enkle koden ovenfor, har du en SSH -tilkobling til enheten. Du kan også sende enhetsinformasjonen direkte i stedet for å overføre den til en ordbok.
Når du har en SSH -økt, kan du utføre kommandoer ved hjelp av Send_Command () -funksjonen. Funksjoner støttet av NetMiko inkluderer:
Netmiko Vanlige brukte metoder:
Som nevnt tidligere, er dette ikke en guide for hvordan du bruker NetMiko, men en enkel retning av hva Netmiko og Paramiko er. Sjekk den offisielle dokumentasjonen for mer informasjon.
https: // github.com/ktbyers/netmiko
Konklusjon
I denne raske guiden diskuterte vi hvordan du bruker Paramiko for generiske SSH -tilkoblinger og NetMiko Network Device Management, som illustrerer forskjellene mellom de to.
Å konkludere:
Paramiko | Netmiko |
---|---|
Nyttig for generisk SSH -bruk | Mest nyttig for nettverksenhetskonfigurasjon. |
Begrenset støtte for et bredt spekter av nettverksenheter. | Støtter et bredt spekter av nettverksenheter. |