Golang CLI で SSH を使用してリモート コマンドを実行する
リモート マシンでのコマンドの実行は、システム管理を自動化する場合の一般的なタスクです。 Golang の「golang.org/x/crypto/ssh」パッケージは、SSH 接続を確立し、コマンドをリモートで実行するための便利な方法を提供します。
リモート マシンでコマンドを実行するには、次の手順に従います。
SSH 接続を確立します:
ssh.Dial 関数を使用しますリモート マシンへの SSH 接続を確立します。次の情報を指定する必要があります:
リモート コマンドを実行してその出力を返す方法を示す関数の例を次に示します。
import ( "bytes" "net" "golang.org/x/crypto/ssh" ) func remoteRun(user, addr, privateKey, cmd string) (string, error) { key, err := ssh.ParsePrivateKey([]byte(privateKey)) if err != nil { return "", err } config := &ssh.ClientConfig{ User: user, HostKeyCallback: ssh.InsecureIgnoreHostKey(), Auth: []ssh.AuthMethod{ ssh.PublicKeys(key), }, } client, err := ssh.Dial("tcp", net.JoinHostPort(addr, "22"), config) if err != nil { return "", err } session, err := client.NewSession() if err != nil { return "", err } defer session.Close() var b bytes.Buffer // capture output session.Stdout = &b // get output err = session.Run(cmd) return b.String(), err }
この関数は次の目的で使用できます。リモート マシン上でコマンドを実行し、Golang CLI スクリプトからシステム管理タスクを自動化する便利な方法を提供します。
以上がGolang CLI で SSH を使用してリモート コマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。