Go 连接ssh服务器

安装

go get -u -v golang.org/x/crypto/ssh

实例

package main

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

func main() {
    config := &ssh.ClientConfig{
        User: "root",
        Auth: []ssh.AuthMethod{
            ssh.Password("123456"),
        },
        HostKeyCallback: ssh.InsecureIgnoreHostKey(),
        Timeout:         time.Second * 3,
    }
    client, err := ssh.Dial("tcp", "192.168.3.111:22", config)
    if err != nil {
        log.Fatal(err.Error())
    }
    defer client.Close()
    session, err := client.NewSession()
    if err != nil {
        log.Fatal(err.Error())
    }

    var stdout bytes.Buffer
    var stderr bytes.Buffer

    session.Stdout = &stdout
    session.Stderr = &stderr

    err = session.Run("hostname")
    if err != nil {
        log.Fatal(err.Error())
        return
    }
    defer session.Close()
    fmt.Println(string(stdout.Bytes()))
}

密钥认证

文件传输

动态刷新

Last updated

Was this helpful?