我正在尝试使用 go 执行任何类型的本地脚本(sh/bash/python/ruby)或带有参数的远程机器的可执行文件。
ssh 命令:ssh user@10.10.10.10 "python3" - < ./test.py "arg1"
package main
import (
"log"
"os"
"golang.org/x/crypto/ssh"
)
func main() {
user := "user"
hostport := "10.10.10.10:22"
script, _ := os.OpenFile("test.py", os.O_RDWR|os.O_CREATE, 0755)
interpreter := "python3"
client, session, err := connectToHost(user, hostport)
session.Stdin = script
session.Stdout = os.Stdout
err = session.Run(interpreter)
if err != nil {
log.Fatal(err)
}
client.Close()
defer session.Close()
}
示例 ssh 命令运行良好,我也可以在远程服务器中执行本地 test.py,但我想不出任何有效的方法来帮助我传递参数(例如 arg1)。
谢谢您的帮助。