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