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