我有50臺Linux機器(RHEL)。我想通過在中央機器上運行的go腳本在這些機器上運行一些命令。我從中央機器到所有遠程機器都設置了無密碼ssh認證。雖然我也對非ssh解決方案開放,儘管安全是首選。golang:在遠程服務器上執行shell命令
正在運行的命令會隨着時間而改變。我也想處理在中央機器上運行的腳本中的遠程機器上運行的命令的輸出和返回代碼。
我只發現這ssh package,它只支持密碼驗證方法,這是不夠好的。
還有其他的選擇嗎?
我有50臺Linux機器(RHEL)。我想通過在中央機器上運行的go腳本在這些機器上運行一些命令。我從中央機器到所有遠程機器都設置了無密碼ssh認證。雖然我也對非ssh解決方案開放,儘管安全是首選。golang:在遠程服務器上執行shell命令
正在運行的命令會隨着時間而改變。我也想處理在中央機器上運行的腳本中的遠程機器上運行的命令的輸出和返回代碼。
我只發現這ssh package,它只支持密碼驗證方法,這是不夠好的。
還有其他的選擇嗎?
您可以使用公鑰與go.crypto/ssh
包使用PublicKeys
。
有使用ssh劑@https://github.com/davecheney/socksie/blob/master/main.go在repo詳細示例圍繞線114
又如。
你只可以使用此包https://github.com/hypersleep/easyssh
例如,您可以遠程調用ps ax
:
package main
import (
"fmt"
"github.com/hypersleep/easyssh"
)
func main() {
ssh := &easyssh.MakeConfig {
User: "core",
Server: "core",
Key: "/.ssh/id_rsa",
Port: "22",
}
response, err := ssh.Run("ps ax")
if err != nil {
panic("Can't run remote command: " + err.Error())
} else {
fmt.Println(response)
}
}
所以這是一個文檔錯誤即可。 :)'目前只有 //支持「密碼」驗證方法 – Kashyap 2014-10-18 19:36:27