0
私は、外出先でredisを使ってsshトンネルを行うことが可能かどうかを確かめようとしています。私はredigoライブラリを使用しています。コマンドラインからGoでsshトンネル経由でredisに接続する方法は?
私は通常、何かのように実行します。
ssh [email protected] -p port
、その後のRedis-CLI -h redisHost
私は、外出先でredisを使ってsshトンネルを行うことが可能かどうかを確かめようとしています。私はredigoライブラリを使用しています。コマンドラインからGoでsshトンネル経由でredisに接続する方法は?
私は通常、何かのように実行します。
ssh [email protected] -p port
、その後のRedis-CLI -h redisHost
使用Redigoと、このようなnetwork dial機能:
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
を作成しますそれぞれのダイヤルで一度再利用してください。
上記のコードはコンパイルされていないため、テストされていません。
完璧な、これは私がそれを働かせるために必要なものです! – user2439604