Exemples de Golang SSH

Exemples de Golang SSH

Secure Shell ou SSH est un protocole réseau sécurisé qui permet des connexions à distance des appareils dans une connexion sécurisée. SSH est l'un des protocoles de réseau les plus utiles et les plus populaires au cours des dernières années.

Dans cet article, nous discuterons de la façon dont vous pouvez utiliser pour travailler avec SSH Protocol.

Package Golang SSH

Dans ce tutoriel, nous utiliserons le package crypto / ssh. Vous pouvez importer le package comme:

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

Client SSH

Nous allons commencer par construire un client SSH qui prend l'adresse d'un serveur SSH distant et qui s'y connecte.

Considérez l'exemple de code comme indiqué ci-dessous:

package principal
importer (
"enregistrer"
"Golang.org / x / crypto / ssh "
"Golang.org / x / crypto / ssh / connuhosts "
)
func main ()
// configuration ssh
hostkeyCallback, err: = connuhosts.Nouveau ("/ home / debian11 /.ssh / connu_hosts ")
Si err != nil
enregistrer.Fatal (euh)

config: = & ssh.ClientConfig
Utilisateur: "Ubuntu",
Auth: [] ssh.AuthMethod
ssh.Mot de passe ("mot de passe"),
,
HostkeyCallback: hostkeyCallback,

// Connectez le serveur SSH
Conn, err: = ssh.Dial ("TCP", "192.168.205.217: 22 ", config)
Si err != nil
enregistrer.Fatal (euh)

Déférer Conn.Fermer()

Dans l'exemple de code précédent, nous commençons par importer les modules requis. Nous importons le crypto / ssh et la crypto / connuhosts pour se connecter au serveur SSH et analyser la clé hôte.

Nous créons ensuite une nouvelle clé d'hôte en utilisant les Hôtes connus.Méthode new (). La fonction renvoie un rappel de clé hôte à partir des fichiers de clé hôte spécifiés.

Ensuite, nous créons une configuration pour se connecter au serveur. Il s'agit d'une structure de maintien des informations, telles que l'utilisateur et la méthode AUTH.

La dernière étape consiste à composer la connexion au serveur à l'aide du SSH.Méthode Dial ().

Créer une session

Nous pouvons créer une session en utilisant la méthode de rédaction. Un exemple de code de code est comme indiqué ci-dessous:

Session, euh: = Conn.Newsession ()
Si err != nil
enregistrer.Fatal (euh)

session de report.Fermer()

Demander pty

Considérez l'exemple de code fourni ci-dessous:

// Configurer le mode terminal
modes: = ssh.TerminalModes
ssh.Echo: 0, // Supress Echo

// Exécuter la session du terminal
Si err: = session.RequestPty ("xterm", 50, 80, modes); se tromper != nil
enregistrer.Fatal (euh)

// Démarrer le shell distant
Si err: = session.Coquille(); se tromper != nil
enregistrer.Fatal (euh)

Dans l'exemple précédent, nous configurons les modes de terminal. Bien que vous puissiez utiliser les paramètres par défaut, dans cet exemple, nous définissons le ssh.Echo Valeur à 0. Cela empêche le shell de vous faire écho aux commandes.

Ensuite, nous demandons une session de terminal en utilisant la méthode requestpty (). Cela prend le terme en tant que chaîne, ainsi que la hauteur et la largeur de la session terminale comme des entiers et le mode de configuration du terminal.

Exécuter la commande

Vous pouvez exécuter une seule commande sur le serveur une fois qu'une session est établie. Par exemple:

octets de buff var.Amortir
session.Stdout = & buff
Si err: = session.Run («ls -La»); se tromper != nil
enregistrer.Fatal (euh)

fmt.Println (buff.Chaîne())

Dans l'exemple précédent, nous utilisons la fonction d'exécution pour exécuter une commande sur le serveur.

Un exemple de sortie est illustré ci-dessous:

Conclusion

Ce guide couvre les principes fondamentaux du travail avec le package SSH dans le langage de programmation Go. De plus, la création d'une session à l'aide de la méthode de rédaction, demandant une session de terminal à l'aide de la méthode RequestPty () et en utilisant la commande RUN a été discutée. Nous espérons que vous avez trouvé cet article utile. Consultez d'autres articles sur les conseils Linux pour plus de conseils et d'informations.