Maison >développement back-end >Golang >Comment créer un simple transfert de port SSH dans Golang ?
Redirection de port SSH simple dans Golang
Dans cet article, nous explorerons comment créer une redirection de port SSH simple, vous permettant de vous connecter vers un port distant depuis votre machine locale.
Création d'un port Transférer
Pour créer une redirection de port, vous devez établir une connexion SSH et écouter sur le port local. Une fois la connexion établie, vous pouvez transférer des données entre les ports locaux et distants.
Voici un guide étape par étape :
Exemple de code
Le code Go suivant illustre ces étapes :
<code class="go">package main import ( "io" "log" "net" "golang.org/x/crypto/ssh" ) func forward(localConn net.Conn, config *ssh.ClientConfig, remoteAddr string) { sshClientConn, err := ssh.Dial("tcp", "remote.example.com:22", config) if err != nil { log.Fatalf("ssh.Dial failed: %s", err) } sshConn, err := sshClientConn.Dial("tcp", remoteAddr) if err != nil { log.Fatalf("sshClientConn.Dial failed: %s", err) } go io.Copy(sshConn, localConn) go io.Copy(localConn, sshConn) } func main() { config := &ssh.ClientConfig{ User: "username", Auth: []ssh.AuthMethod{ ssh.Password("password"), }, } listener, err := net.Listen("tcp", "local.example.com:9000") if err != nil { log.Fatalf("net.Listen failed: %s", err) } for { localConn, err := listener.Accept() if err != nil { log.Fatalf("listener.Accept failed: %s", err) } go forward(localConn, config, "remote.example.com:9999") } }</code>
En suivant ces étapes et en utilisant le code, vous pouvez créer un transfert de port SSH simple mais efficace et accéder facilement aux services distants depuis votre machine locale.
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!