golang 通過ssh連接遠程服務器 控制

编程入门 行业动态 更新时间:2024-10-23 11:18:41

<a href=https://www.elefans.com/category/jswz/34/1769831.html style=golang 通過ssh連接遠程服務器 控制"/>

golang 通過ssh連接遠程服務器 控制

1.下載依賴

go get  golang/x/crypto/ssh

2.import

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

3.使用

func pwdConnect(sshHost, sshUser, sshPassword string, sshPort int) (*ssh.Client, error) {// 创建ssh登录配置config := &ssh.ClientConfig{Timeout:         5 * time.Second,                             // 超时时间User:            sshUser,                                     // 登录账号Auth:            []ssh.AuthMethod{ssh.Password(sshPassword)}, // 密码HostKeyCallback: ssh.InsecureIgnoreHostKey(),                 // 这个不够安全,生产环境不建议使用//HostKeyCallback: ssh.FixedHostKey(), // 建议使用这种,目前还没研究出怎么使用[todo]}// dial连接服务器addr := fmt.Sprintf("%s:%d", sshHost, sshPort)Client, err := ssh.Dial("tcp", addr, config)if err != nil {log.Fatal("连接到服务器失败", err)return nil, err}//defer sshClient.Close()return Client, nil
}func main() {// 连接到服务器conn, err := pwdConnect("10.xxxx","root","1234",22)if err != nil {return}defer conn.Close()// 创建 ssh session 会话session, err := conn.NewSession()if err != nil {panic(err)}defer session.Close()// 执行远程命令cmd := "cd /home ; ls"cmdInfo, err := session.CombinedOutput(cmd)if err != nil {panic(err)}fmt.Println(string(cmdInfo))
}

更多推荐

golang 通過ssh連接遠程服務器 控制

本文发布于:2023-12-04 15:38:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1661408.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:golang   ssh   連接遠程服務器

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!