您的位置:首页 > 健康 > 美食 > html网页制作练习_亿速云_西安网络推广seo0515_推广软文代发

html网页制作练习_亿速云_西安网络推广seo0515_推广软文代发

2025/2/25 1:54:36 来源:https://blog.csdn.net/weixin_42754896/article/details/145782695  浏览:    关键词:html网页制作练习_亿速云_西安网络推广seo0515_推广软文代发
html网页制作练习_亿速云_西安网络推广seo0515_推广软文代发

ssh.Dial

golang.org/x/crypto/ssh

package mainimport ("bytes""log""os""strings""golang.org/x/term""golang.org/x/crypto/ssh"
)// go ssh 连接ssh
// 参考blog:
//
//  https://www.cnblogs.com/zhzhlong/p/12552410.html
//  https://blog.csdn.net/Naisu_kun/article/details/130598129
func main() {log.Println("main ...")client, err := ssh.Dial("tcp", "IP地址:22或者其他端口", &ssh.ClientConfig{User:            "root或者其他用户名",Auth:            []ssh.AuthMethod{ssh.Password("密码")},HostKeyCallback: ssh.InsecureIgnoreHostKey(),})if err != nil {log.Fatalf("SSH dial error: %s", err.Error())}session, err := client.NewSession()if err != nil {log.Fatalf("new session error: %s", err.Error())}// session run执行命令var b bytes.Buffersession.Stdout = &bif err := session.Run("pwd"); err != nil {log.Fatalln("Failed to run: " + err.Error())}log.Println(strings.Trim(string(b.String()), "\n"))session.Close()// session执行Output命令session, _ = client.NewSession()result, err := session.Output("pwd")if err != nil {log.Fatalln("Failed to run command, Err:", err.Error())}log.Println(strings.Trim(string(result), "\n"))session.Close()// 模拟terminalsession, _ = client.NewSession()// 会话输出关联到系统标准输出设备session.Stdout = os.Stdout// 会话错误输出关联到系统标准错误输出设备session.Stderr = os.Stderr// 会话输入关联到系统标准输入设备session.Stdin = os.Stdin// 设置终端参数modes := ssh.TerminalModes{ssh.ECHO:          0,     // 禁用回显(0禁用,1启动)ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaudssh.TTY_OP_OSPEED: 14400, //output speed = 14.4kbaud}// 获取当前标准输出终端窗口尺寸 // 该操作可能有的平台上不可用,那么下面手动指定终端尺寸即可termWidth, termHeight, err := term.GetSize(int(os.Stdout.Fd()))if err != nil {log.Fatal("unable to terminal.GetSize: ", err)}// 设置虚拟终端与远程会话关联if err = session.RequestPty("linux", termHeight, termWidth, modes); err != nil {log.Fatalf("request pty error: %s", err.Error())}// 启动远程Shellif err = session.Shell(); err != nil {log.Fatalf("start shell error: %s", err.Error())}// 启动远程Shellif err = session.Wait(); err != nil {log.Fatalf("return error: %s", err.Error())}log.Println("success ..")
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com