32 lines
730 B
Go
32 lines
730 B
Go
![]() |
package main
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
"log"
|
||
|
|
||
|
"github.com/gliderlabs/ssh"
|
||
|
)
|
||
|
|
||
|
func main() {
|
||
|
|
||
|
log.Println("starting ssh server on port 2222...")
|
||
|
|
||
|
server := ssh.Server{
|
||
|
LocalPortForwardingCallback: ssh.LocalPortForwardingCallback(func(ctx ssh.Context, dhost string, dport uint32) bool {
|
||
|
log.Println("Accepted forward", dhost, dport)
|
||
|
return true
|
||
|
}),
|
||
|
Addr: ":2222",
|
||
|
Handler: ssh.Handler(func(s ssh.Session) {
|
||
|
io.WriteString(s, "Remote forwarding available...\n")
|
||
|
select {}
|
||
|
}),
|
||
|
ReversePortForwardingCallback: ssh.ReversePortForwardingCallback(func(ctx ssh.Context, host string, port uint32) bool {
|
||
|
log.Println("attempt to bind", host, port, "granted")
|
||
|
return true
|
||
|
}),
|
||
|
}
|
||
|
|
||
|
log.Fatal(server.ListenAndServe())
|
||
|
}
|