go ssh 执行命令
package main import ( "fmt" gossh "golang.org/x/crypto/ssh" "net" ) type Cli struct { user string pwd string addr string client *gossh.Client session *gossh.Session LastResult string } func (c *Cli) Connect() (*Cli, error) { config := &gossh.ClientConfig{} config.SetDefaults() config.User = c.user config.Auth = []gossh.AuthMethod{gossh.Password(c.pwd)} config.HostKeyCallback = func(hostname string, remote net.Addr, key gossh.PublicKey) error { return nil } client, err := gossh.Dial("tcp", c.addr, config) if nil != err { return c, err } c.client = client return c, nil } func (c Cli) Run(shell string) (string, error) { if c.client == nil { if _,err := c.Connect(); err != nil { return "", err } } session, err := c.client.NewSession() if err != nil { return "", err } defer session.Close() buf, err := session.CombinedOutput(shell) c.LastResult = string(buf) return c.LastResult, err } func main() { cli := Cli{ user:"root", pwd: "xxxxxxxxxxxxxxxxxxxxx", addr: "192.168.100.50:22", } output, err := cli.Run("pwd") fmt.Printf("%v\n%v", output, err) }
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UNIX编程艺术
Eric S. Raymond / 姜宏、何源、蔡晓俊 / 电子工业出版社 / 2011-1 / 69.00元
本书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师、开源运动领袖人物之一Eric S. Raymond倾力多年写作而成。包括Unix设计者在内的多位领域专家也为本书贡献了宝贵的内容。本书内容涉及社群文化、软件开发设计与实现,覆盖面广、内容深邃,完全展现了作者极其深厚的经验积累和领域智慧。一起来看看 《UNIX编程艺术》 这本书的介绍吧!
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
SHA 加密
SHA 加密工具