Maison  >  Article  >  développement back-end  >  Comment implémenter une connexion SSH à l'aide de Golang

Comment implémenter une connexion SSH à l'aide de Golang

PHPz
PHPzoriginal
2023-04-14 13:33:153823parcourir

Golang est un langage de programmation fortement typé, hautement simultané et sécurisé en mémoire, très adapté au développement d'applications réseau. L'un d'eux est que vous pouvez utiliser Golang pour implémenter des connexions SSH, ce qui permet aux utilisateurs d'accéder facilement aux serveurs Linux à distance.

Cet article expliquera comment utiliser Golang pour implémenter la connexion SSH. Nous commencerons par installer le langage Go et présenterons les bibliothèques dépendantes et le processus d'implémentation afin que les lecteurs puissent implémenter des connexions SSH dans leurs propres projets.

1. Installer le langage Go

Tout d'abord, vous devez installer la dernière version de Golang. Il est recommandé de télécharger le package d'installation officiel de Golang : https://golang.org/dl/ et de l'installer selon les instructions officielles. Une fois l'installation terminée, vous pouvez vérifier la réussite de l'installation en entrant la commande suivante via la ligne de commande :

$ go version

Si l'installation réussit, vous verrez le numéro de version de Golang installé sur votre ordinateur local.

2. Installer les bibliothèques dépendantes

Ensuite, nous devons installer une bibliothèque dépendante nommée "golang.org/x/crypto/ssh". Cette bibliothèque fournit des fonctions liées aux connexions SSH, notamment la connexion, l'exécution de commandes, etc.

Exécutez la commande suivante pour installer :

$ go get golang.org/x/crypto/ssh

Cette commande téléchargera la bibliothèque dépendante dans le répertoire pointé par la variable d'environnement GOPATH. Si la variable d'environnement GOPATH n'a pas été définie, vous pouvez entrer la commande suivante pour la définir :

$ export GOPATH=$HOME/go

J'écris ici pour le système Linux Si vous utilisez Windows, vous pouvez modifier l'exportation pour la définir.

3. Implémenter la connexion SSH

Une fois l'installation terminée, nous pouvons commencer à utiliser cette bibliothèque dépendante pour implémenter la connexion SSH.

Ce qui suit est un exemple de code de connexion SSH de base :

package main

import (
    "fmt"
    "golang.org/x/crypto/ssh"
)

func main() {
    sshConfig := &ssh.ClientConfig{
        User: "username",
        Auth: []ssh.AuthMethod{
            ssh.Password("password"),
        },
        HostKeyCallback: ssh.InsecureIgnoreHostKey(),
    }

    host := "example.com:22"
    client, err := ssh.Dial("tcp", host, sshConfig)
    if err != nil {
        panic(err)
    }
    defer client.Close()

    session, err := client.NewSession()
    if err != nil {
        panic(err)
    }
    defer session.Close()

    output, err := session.Output("ls -l")
    if err != nil {
        panic(err)
    }
    fmt.Println(string(output))
}

Ce programme crée d'abord un objet de configuration "ssh.ClientConfig", qui contient le nom d'utilisateur et le mot de passe requis pour se connecter à l'hôte. Ici, nous devons remplacer le paramètre « Utilisateur » et le paramètre « Auth » en conséquence afin que nous puissions utiliser le nom d'utilisateur et le mot de passe corrects pour nous connecter au serveur. De plus, puisqu'il s'agit d'un exemple simple, nous n'effectuerons pas de vérification de la clé d'hôte et définirons à la place le paramètre "HostKeyCallback" sur "ssh.InsecureIgnoreHostKey()".

Ensuite, nous utilisons la fonction "ssh.Dial()" pour nous connecter à l'hôte distant via TCP. Si la connexion réussit, nous fermerons la connexion client avant la fin de la fonction.

Ensuite, nous utilisons la fonction "client.NewSession()" pour créer une nouvelle session de terminal et l'attribuer à une variable appelée "session". À ce stade, si nous devons exécuter certaines commandes, nous pouvons utiliser la fonction "session.Output()". À la fin de chaque nouvelle session, nous devons la fermer pour nous assurer qu'il n'y a pas de fuite de ressources.

Enfin, nous générons le résultat de retour de la commande "ls -l" et l'imprimons sur la console.

Résumé

Dans cet article, nous avons présenté les étapes pour implémenter la connexion SSH à l'aide de Golang. Nous avons commencé par installer Golang, puis installé les bibliothèques dépendantes et enfin implémenté un simple exemple de programme de connexion SSH.

Bien que ce programme ne soit qu'un exemple simple, il peut être utilisé comme point de départ pour commencer à développer votre propre application SSH. Permettez-moi de vous rappeler encore une fois que SSH étant un protocole de communication très sécurisé, dans le développement réel, les meilleures pratiques doivent être suivies pour garantir une communication sécurisée entre le serveur et le client.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn