Esempi di Golang SSH

Esempi di Golang SSH

Secure Shell o SSH è un protocollo di rete sicuro che consente l'accesso remoto dei dispositivi in ​​una connessione sicura. SSH è uno dei protocolli di rete più utili e popolari negli ultimi anni.

In questo articolo, discuteremo di come puoi usare andare a lavorare con il protocollo SSH.

Pacchetto Golang SSH

In questo tutorial, useremo il pacchetto Crypto/SSH. Puoi importare il pacchetto come:

Importa "Golang.org/x/cripto/ssh "

Cliente SSH

Inizieremo creando un client SSH che prende l'indirizzo di un server SSH remoto e si collega ad esso.

Considera l'esempio del codice come mostrato di seguito:

Pacchetto principale
importazione (
"tronco d'albero"
"Golang.org/x/cripto/ssh "
"Golang.org/x/cripto/ssh/nothosts "
)
func main ()
// config ssh
HostKeyCallback, err: = notohosts.Nuovo ("/Home/Debian11/.ssh/know_hosts ")
Se err != nil
tronco d'albero.Fatale (err)

config: = & ssh.Clientconfig
Utente: "Ubuntu",
AUTH: [] SSH.Authmethod
ssh.Password ("password"),
,
HostKeyCallback: HostKeyCallback,

// Connetti OT SSH Server
Conn, err: = ssh.Dial ("TCP", 192.168.205.217: 22 ", config)
Se err != nil
tronco d'albero.Fatale (err)

Defer Conn.Vicino()

Nell'esempio del codice precedente, iniziamo importando i moduli richiesti. Importiamo Crypto/SSH e Crypto/Knowhosts per connettersi al server SSH e analizzare la chiave host.

Creiamo quindi una nuova chiave host utilizzando i noti host.Nuovo () metodo. La funzione restituisce un callback della chiave host dai file chiave host specificati.

Successivamente, creiamo config per accedere al server. Questa è una struttura che detiene informazioni, come l'utente e il metodo dell'auth.

L'ultimo passaggio è comporre la connessione al server utilizzando SSH.Metodo del dial ().

Crea sessione

Possiamo creare una sessione utilizzando il metodo di notizie. Un codice di esempio del codice è come mostrato di seguito:

sessione, err: = Conn.Newsssion ()
Se err != nil
tronco d'albero.Fatale (err)

Defer sessione.Vicino()

Richiedi pty

Considera l'esempio del codice fornito di seguito:

// Configura la modalità terminale
Modalità: = ssh.TerminalModes
ssh.Echo: 0, // Sumpa Echo

// Esegui la sessione del terminale
Se err: = sessione.Requestpty ("xterm", 50, 80, modalità); err != nil
tronco d'albero.Fatale (err)

// Avvia guscio remoto
Se err: = sessione.Conchiglia(); err != nil
tronco d'albero.Fatale (err)

Nell'esempio precedente, configuriamo le modalità del terminale. Sebbene sia possibile utilizzare i parametri predefiniti, in questo esempio, impostiamo SSH.Eco valore a 0. Questo impedisce alla shell di echeggiare i comandi a te.

Successivamente, richiediamo una sessione di terminale utilizzando il metodo requestpty (). Questo prende il termine come stringa e l'altezza e la larghezza della sessione del terminale come numeri interi e la modalità di configurazione del terminale.

Esegui comando

È possibile eseguire un singolo comando sul server una volta stabilita una sessione. Per esempio:

var buff byte.Respingente
sessione.Stdout = & buff
Se err: = sessione.Run ("ls -la"); err != nil
tronco d'albero.Fatale (err)

fmt.Println (buff.Corda())

Nell'esempio precedente, utilizziamo la funzione di esecuzione per eseguire un comando sul server.

Un esempio di output è mostrato di seguito:

Conclusione

Questa guida copre i fondamenti del lavoro con il pacchetto SSH nel linguaggio di programmazione Go. Inoltre, è stata discussa la creazione di una sessione utilizzando il metodo di Newsission, richiedendo una sessione di terminale utilizzando il metodo requestPty () e utilizzando il comando di esecuzione. Speriamo che tu abbia trovato questo articolo utile. Dai un'occhiata ad altri articoli di suggerimento Linux per ulteriori suggerimenti e informazioni.