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