介绍
这篇文章将为大家详细讲解有关怎么在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连接服务器