ssh sftp connection pool
This is a fork of 0xef53/go-sshpool
The documentation is located at https://godoc.org/github.com/0xef53/go-sshpool
The fork was done to open the client variable in the SSHConn struct. The change was made from "client" to "Client".
go-sshpool GoDoc
Package sshpool provides an SSH connection pool implementation for the Go language.
Installation go get github.com/0xef53/go-sshpool Example agentSocket, ok := os.LookupEnv("SSH_AUTH_SOCK") if !ok { log.Fatalln("Could not connect to SSH_AUTH_SOCK. Is ssh-agent running?") }
poolCfg := &sshpool.PoolConfig{ GCInterval: 5 * time.Second, MaxConns: 5, }
p := sshpool.NewPool(poolCfg)
sshCfg := &sshpool.SSHConfig{ User: "root", Host: "localhost", Port: 22, AgentSocket: agentSocket, Timeout: 30 * time.Second, HostKeyCallback: ssh.InsecureIgnoreHostKey(), }
output, err := p.CombinedOutput(sshCfg, "uname -a ; sleep 3", nil, nil) if err != nil { log.Fatalf("%s: %s\n", err, output) }
fmt.Println(string(output))
fmt.Println("Active connections:", p.ActiveConns()) Documentation Use Godoc documentation for reference and usage.