package service import ( "bytes" "strings" "testing" ) const ( username = "root" password = "Legu.cc()123" ip = "10.0.0.9" port = 22 cmd = "ls" cmds = "cd /home/liwei/go_dreamfactory&&git pull&&exit" //exit结尾,否则程序不会退出 ) func TestSSHConnect(t *testing.T) { ciphers := []string{} ssh := &SSHService{} session, err := ssh.Connect(username, password, ip, "", port, ciphers) if err != nil { t.Fatal(err) } defer session.Close() cmdlist := strings.Split(cmds, "&&") stdinBuf, err := session.StdinPipe() if err != nil { t.Fatal(err) } var stdoutBuf, errBuf bytes.Buffer session.Stdout = &stdoutBuf session.Stderr = &errBuf if err := session.Shell(); err != nil { t.Error(err) } for _, c := range cmdlist { c = c + "\n" stdinBuf.Write([]byte(c)) } session.Wait() t.Logf(stdoutBuf.String() + errBuf.String()) // if err := session.Run(cmd); err != nil { // t.Logf("run err: %v", err) // } // t.Logf("res: %v", session.Stdout) }