sshserver: enable ssh port forwarding
diff --git a/loop/server/sshserver.go b/loop/server/sshserver.go
index 9946ac9..0ba2d8b 100644
--- a/loop/server/sshserver.go
+++ b/loop/server/sshserver.go
@@ -51,6 +51,7 @@
if err != nil {
return fmt.Errorf("ServeSSH: failed to parse host private key, err: %w", err)
}
+ forwardHandler := &ssh.ForwardedTCPHandler{}
server := ssh.Server{
LocalPortForwardingCallback: ssh.LocalPortForwardingCallback(func(ctx ssh.Context, dhost string, dport uint32) bool {
@@ -67,6 +68,10 @@
handleSession(ctx, s)
}
}),
+ RequestHandlers: map[string]ssh.RequestHandler{
+ "tcpip-forward": forwardHandler.HandleSSHRequest,
+ "cancel-tcpip-forward": forwardHandler.HandleSSHRequest,
+ },
HostSigners: []ssh.Signer{signer},
PublicKeyHandler: func(ctx ssh.Context, key ssh.PublicKey) bool {
// Check if the provided key matches any of our allowed keys