怎么在golang中利用ssh连接服务器

  介绍

这篇文章将为大家详细讲解有关怎么在golang中利用ssh连接服务器,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1。发送指令执行session.Run ()

package 主要      import  (   ,,,“bytes"   ,,,“fmt"   ,,,“;golang.org/x/crypto/ssh"   ,,,“log")      func  main (), {   ,,,//,建立SSH客户端连接   ,,,,,err :=, ssh.Dial (“tcp",,“127.0.0.1:2222",,, ssh.ClientConfig {   ,,,,,,,用户:,,,,,,,,,,,,“root",   ,,,,,,,身份验证:,,,,,,,,,,,,[]ssh.AuthMethod {ssh.Password (“123456“)},   ,,,,,,,HostKeyCallback:, ssh.InsecureIgnoreHostKey (),   ,,,})   ,,,if  err  !=, nil  {   ,,,,,,,log.Fatalf (“SSH  dial 错误:% s",, err.Error ())   ,,,}      ,,,//,建立新会话   ,,,,,err :=, client.NewSession ()   ,,,if  err  !=, nil  {   ,,,,,,,log.Fatalf (“new  session 错误:% s",, err.Error ())   ,,,}      ,,,defer  session.Close ()         ,,,var  b  bytes.Buffer   ,,,session.Stdout =,, b   ,,,if  err :=, session.Run (“ls");, err  !=, nil  {   ,,,,,,,恐慌(“Failed 用运行:,“,+,err.Error ())   ,,,}   ,,,fmt.Println (b.String ())   }

2。发送指令执行session.Output ()

session.run(命令)是直接在主机执行命令,不关心执行结果.session.Output是将执行命令之后的Stdout返回

package 主要      import  (   ,,,“fmt"   ,,,“;golang.org/x/crypto/ssh"   ,,,“log"   ,,,“os")      func 测试(),{      ,,,//,建立SSH客户端连接   ,,,,,err :=, ssh.Dial (“tcp",,“127.0.0.1:2222",,, ssh.ClientConfig {   ,,,,,,,用户:,,,,,,,,,,,,“root",   ,,,,,,,身份验证:,,,,,,,,,,,,[]ssh.AuthMethod {ssh.Password (“123456“)},   ,,,,,,,HostKeyCallback:, ssh.InsecureIgnoreHostKey (),   ,,,})   ,,,if  err  !=, nil  {   ,,,,,,,log.Fatalf (“SSH  dial 错误:% s",, err.Error ())   ,,,}      ,,,//,建立新会话   ,,,,,err :=, client.NewSession ()   ,,,defer  session.Close ()   ,,,if  err  !=, nil  {   ,,,,,,,log.Fatalf (“new  session 错误:% s",, err.Error ())   ,,,}      结果,,,,,err :=, session.Output (“ls  -al")   ,,,if  err  !=, nil  {   ,,,,,,,fmt.Fprintf (os.Stdout,,“Failed 用run 命令,犯错:% s",, err.Error ())   ,,,,,,,os.Exit (0)   ,,,}   ,,,fmt.Println (string(结果))   }

3。模拟交互终端

package 主要      import  (   ,,,“;golang.org/x/crypto/ssh"   ,,,“log"   ,,,“os")      func  main (), {   ,,,//,建立SSH客户端连接   ,,,,,err :=, ssh.Dial (“tcp",,“127.0.0.1:2222",,, ssh.ClientConfig {   ,,,,,,,用户:,,,,,,,,,,,,“root",   ,,,,,,,身份验证:,,,,,,,,,,,,[]ssh.AuthMethod {ssh.Password (“123456“)},   ,,,,,,,HostKeyCallback:, ssh.InsecureIgnoreHostKey (),   ,,,})   ,,,if  err  !=, nil  {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在golang中利用ssh连接服务器