发布时间:2024-12-23 03:08:40
``` import ( "fmt" "golang.org/x/crypto/ssh" ) ```
然后,我们需要准备SSH连接所需的配置信息:``` config := &ssh.ClientConfig{ User: "your_username", Auth: []ssh.AuthMethod{ ssh.Password("your_password"), }, HostKeyCallback: ssh.InsecureIgnoreHostKey(), } ```
在上面的代码中,我们设置了用户名和密码进行身份验证,并使用`ssh.InsecureIgnoreHostKey()`函数忽略了服务器的主机密钥验证。 接下来,我们可以使用以下代码与远程服务器建立SSH连接:``` conn, err := ssh.Dial("tcp", "your_server_ip:22", config) if err != nil { fmt.Printf("Failed to connect to remote server: %s", err) return } defer conn.Close() ```
在上述代码中,我们使用`ssh.Dial()`函数以TCP协议连接远程服务器,并在参数中指定服务器的IP地址和端口号。``` session, err := conn.NewSession() if err != nil { fmt.Printf("Failed to create SSH session: %s", err) return } defer session.Close() output, err := session.CombinedOutput("ls") if err != nil { fmt.Printf("Failed to execute command on remote server: %s", err) return } fmt.Println(string(output)) ```
在上述代码中,我们首先通过`conn.NewSession()`函数创建一个新的SSH会话。然后,我们使用`CombinedOutput()`函数执行`ls`命令,并将结果存储在`output`变量中。最后,我们通过`fmt.Println()`函数打印出输出结果。参考资料: