Golang SSH -eksempler

Golang SSH -eksempler

Secure Shell eller SSH er en sikker nettverksprotokoll som tillater eksterne pålogginger på enheter i en sikker tilkobling. SSH er en av de mest nyttige og populære nettverksprotokollene de siste årene.

I denne artikkelen vil vi diskutere hvordan du kan bruke til å jobbe med SSH -protokollen.

Golang SSH -pakke

I denne opplæringen vil vi bruke Crypto/SSH -pakken. Du kan importere pakken som:

Importer "Golang.org/x/krypto/ssh "

SSH -klient

Vi starter med å bygge en SSH -klient som tar adressen til en ekstern SSH -server og kobles til den.

Tenk på kodeeksemplet som vist nedenfor:

pakkehoved
import (
"Logg"
"Golang.org/x/krypto/ssh "
"Golang.org/x/krypto/ssh/kjente hosts "
)
func main ()
// SSH Config
hostkeyCallback, feil: = kjent.Ny ("/Home/Debian11/.ssh/kjente_hosts ")
Hvis feil != nil
Logg.Fatal (feil)

konfigurasjon: = & ssh.ClientConfig
Bruker: "Ubuntu",
AUTH: [] SSH.AuthMethod
ssh.Passord ("Passord"),
,
HostkeyCallback: HostkeyCallback,

// Koble til SSH -serveren
Conn, feil: = ssh.Dial ("TCP", "192.168.205.217: 22 ", konfigurasjon)
Hvis feil != nil
Logg.Fatal (feil)

utsett Conn.Lukk()

I det forrige kodeeksemplet starter vi med å importere de nødvendige modulene. Vi importerer krypto/SSH og Crypto/Kjente for å koble til SSH -serveren og analysere vertsnøkkelen.

Vi oppretter deretter en ny vertsnøkkel ved hjelp av de kjente hostene.Ny () -metode. Funksjonen returnerer en vertsnøkkel tilbakeringing fra de spesifiserte vertsnøkkelfilene.

Deretter oppretter vi Config for å logge inn på serveren. Dette er en struktur som holder informasjon, for eksempel bruker- og autorisasjonsmetode.

Det siste trinnet er å ringe tilkoblingen til serveren ved hjelp av SSH.Dial () Metode.

Opprette økt

Vi kan lage en økt ved hjelp av nyhetsmetoden. Et kodeeksempelkode er som vist nedenfor:

økt, feil: = conn.Newsession ()
Hvis feil != nil
Logg.Fatal (feil)

utsett økt.Lukk()

Be om pty

Tenk på kodeeksemplet nedenfor:

// Konfigurer terminalmodus
Modus: = Ssh.TerminalModes
ssh.Ekko: 0, // Supress Echo

// Run Terminal Session
Hvis feil: = økt.Forespørsel ("xterm", 50, 80, modus); feil != nil
Logg.Fatal (feil)

// Start eksternt skall
Hvis feil: = økt.Skall (); feil != nil
Logg.Fatal (feil)

I forrige eksempel konfigurerer vi terminalmodusene. Selv om du kan bruke standardparametrene, setter vi i dette eksemplet SSH.Ekko verdi til 0. Dette forhindrer at skallet gjenspeiler kommandoer tilbake til deg.

Deretter ber vi om en terminaløkt ved hjelp av RequestyPty () -metoden. Dette tar begrepet som en streng, og høyden og bredden på terminaløkten som heltall og terminalkonfigurasjonsmodus.

Kjør kommando

Du kan kjøre en enkelt kommando på serveren når en økt er opprettet. For eksempel:

var buff byte.Buffer
økt.Stdout = & buff
Hvis feil: = økt.Løp (“ls -la”); feil != nil
Logg.Fatal (feil)

fmt.Println (buff.Streng ())

I forrige eksempel bruker vi løpsfunksjonen for å utføre en kommando på serveren.

Et utgangseksempel er vist nedenfor:

Konklusjon

Denne guiden dekker grunnleggende om å jobbe med SSH -pakken i Go -programmeringsspråket. I tillegg til å lage en økt ved hjelp av nyhetsmetoden, be om en terminaløkt ved hjelp av RequestPty () -metoden, og ved bruk av RUN -kommandoen ble diskutert. Vi håper du fant denne artikkelen nyttig. Sjekk ut andre Linux -hint -artikler for flere tips og informasjon.