GO语言使用开源SSH模拟终端

Posted llguanli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GO语言使用开源SSH模拟终端相关的知识,希望对你有一定的参考价值。

<pre name="code" class="plain">package main

import (
	"go-ssh/ssh"
	"log"
	"os"
)

func main() {
	check := func(err error, msg string) {
		if err != nil {
			log.Fatalf("%s error: %v", msg, err)
		}
	}

	client, err := ssh.Dial("tcp", "192.168.10.248", &ssh.ClientConfig{
		User: "root",
		Auth: []ssh.AuthMethod{ssh.Password("123456")},
	})
	check(err, "dial")

	session, err := client.NewSession()
	check(err, "new session")
	defer session.Close()

	session.Stdout = os.Stdout
	session.Stderr = os.Stderr
	session.Stdin = os.Stdin

	modes := ssh.TerminalModes{
		ssh.ECHO:          0,
		ssh.TTY_OP_ISPEED: 14400,
		ssh.TTY_OP_OSPEED: 14400,
	}
	err = session.RequestPty("xterm", 25, 100, modes)
	check(err, "request pty")

	err = session.Shell()
	check(err, "start shell")

	err = session.Wait()
	check(err, "return")
}


   

以上是关于GO语言使用开源SSH模拟终端的主要内容,如果未能解决你的问题,请参考以下文章

使用GO语言灵活批量ssh登录服务器执行操作

php 在终端中模拟一点加载字符的片段

Go语言之Doc 文档

Uber重磅开源Go语言编程规范!内部已使用多年

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

python 终端模拟模块 pexpect