2017-07-13 175 views

回答

1

使用network dial功能像這樣與Redigo

func dial(network, addr string) (net.Conn, error) { 
     user := "user" 
     password := "password" 
     sshAddr := "example.com:22" 
     redisAddr := ":6379" 
     config := &ssh.ClientConfig{ 
      User: user, 
      Auth: []ssh.AuthMethod{ 
       ssh.Password(passord), 
      }, 
     } 
     netConn, err := net.Dial("tcp", sshAddr) 
     if err != nil { 
      return nil, err 
     } 
     clientConn, chans, reqs, err := ssh.NewClientConn(netConn, sshAddr, config) 
     if err != nil { 
      netConn.Close() 
      return nil, err 
     } 
     client := ssh.NewClient(clientConn, chans, reqs) 
     conn, err := client.Dial("tcp", redisAddr) 
     if err != nil { 
      client.Close() 
      return nil, err 
     } 
     conn, nil 
} 

如果該應用程序會創建到服務器的多個連接,然後創建client每次撥號一次並重復使用。

上面的代碼是未編譯的,未經測試。

+0

完美,這是我需要得到它的工作! – user2439604