是的,你可以在SSH服务器中使用exec.Command
来执行带有”sh”参数的命令。下面是一个示例代码:
package main
import (
"fmt"
"golang.org/x/crypto/ssh"
"log"
)
func main() {
config := &ssh.ClientConfig{
User: "<your-username>",
Auth: []ssh.AuthMethod{
ssh.Password("<your-password>"),
},
}
client, err := ssh.Dial("tcp", "<server-address>:<port>", config)
if err != nil {
log.Fatalf("无法建立SSH连接:%s", err)
}
defer client.Close()
session, err := client.NewSession()
if err != nil {
log.Fatalf("无法创建会话:%s", err)
}
defer session.Close()
command := "echo Hello, World!"
output, err := session.CombinedOutput("sh -c \"" + command + "\"")
if err != nil {
log.Fatalf("命令执行出错:%s", err)
}
fmt.Println(string(output))
}
请确保替换<your-username>
、<your-password>
、<server-address>
和<port>
为正确的值。
这段代码首先建立了与SSH服务器的连接,然后创建了一个新的会话,并使用session.CombinedOutput()
方法执行带有”sh -c”参数的命令。最后,它将输出打印到控制台上。
请注意,此示例假设你已经安装了Go语言和”golang.org/x/crypto/ssh”包,并且已经正确配置了SSH服务器。
内容由零声教学AI助手提供,问题来源于学员提问