gpt4 book ai didi

go - Go:使用golang中的参数模拟ssh远程执行本地脚本

转载 作者:行者123 更新时间:2023-12-01 22:23:02 74 4
gpt4 key购买 nike

我正在尝试使用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)。
谢谢您的帮助。

最佳答案

为什么不将标志传递给python文件呢?通过使用小于号,您实际上是将test.py的输出输入到Go可执行文件中。

ssh user@10.10.10.10 "python3" - < ./test.py <flag1> "arg1" <flag2> "arg2"

除非我从根本上误解了您要做什么?

关于go - Go:使用golang中的参数模拟ssh远程执行本地脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61855330/

74 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com