SSHTunnel/Main.go

38 lines
726 B
Go
Raw Normal View History

2015-01-02 15:51:37 +00:00
package main
import (
"golang.org/x/crypto/ssh"
"log"
"net"
)
func main() {
readFlags()
config := &ssh.ClientConfig{
User: username,
Auth: []ssh.AuthMethod{
ssh.Password(password),
ssh.PasswordCallback(passwordCallback),
ssh.KeyboardInteractive(keyboardInteractiveChallenge),
},
}
localListener, err := net.Listen(`tcp`, localAddrString)
if err != nil {
log.Printf("net.Listen failed: %v\n", err)
} else {
log.Println(`Listen to local address.`)
}
for {
localConn, err := localListener.Accept()
if err != nil {
log.Printf("listen.Accept failed: %v\n", err)
} else {
log.Println(`Accepted a client.`)
go forward(localConn, config)
}
}
}