Go远程执行Linux系统命令 | go


package main

import (
	"fmt"
	"log"
	"time"

	"golang.org/x/crypto/ssh"
)

// PWDAuthConnect密码校验注释
func pwdAuthConnect(sshHost, sshUser, sshPassword string, sshPort int) (*ssh.Client, error) {
	config := ssh.ClientConfig{
		Timeout:         5 * time.Second,
		User:            sshUser,
		Auth:            []ssh.AuthMethod{ssh.Password((sshPassword))},
		HostKeyCallback: ssh.InsecureIgnoreHostKey(),
	}
	addr := fmt.Sprintf("%s:%d", sshHost, sshPort)
	Client, err := ssh.Dial("tcp", addr, &config)
	// err = errors.New("出错了")
	if err != nil {
		log.Fatal("连接服务器失败", err)
		return nil, err
	}
	return Client, err
}

func main() {
	conn, err := pwdAuthConnect("192.168.225.146", "root", "123456", 22)
	if err != nil {
		return
	}
	defer conn.Close()

	session, err := conn.NewSession()
	if err != nil {
		panic(err)
	}
	defer session.Close()

	cmd := "ls"
	cmdInfo, err := session.CombinedOutput(cmd)
	if err != nil {
		panic(err)
	}
	fmt.Println(string(cmdInfo))
}

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM