feat(poller): add SSH relay server with WebSocket-to-PTY bridge

Implements the SSH relay server (Task 2.1) that validates single-use
Redis tokens via GETDEL, dials SSH to the target device with PTY,
and bridges WebSocket binary/text frames to SSH stdin/stdout/stderr
with idle timeout and per-user/per-device session limits.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jason Staack
2026-03-12 15:33:48 -05:00
parent d3d3e36192
commit c73466c5e0
6 changed files with 550 additions and 0 deletions

View File

@@ -3,6 +3,7 @@ module github.com/mikrotik-portal/poller
go 1.24.0
require (
github.com/alicebob/miniredis/v2 v2.37.0
github.com/bsm/redislock v0.9.4
github.com/go-routeros/routeros/v3 v3.0.0
github.com/google/uuid v1.6.0
@@ -76,6 +77,7 @@ require (
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/tklauser/go-sysconf v0.3.12 // indirect
github.com/tklauser/numcpus v0.6.1 // indirect
github.com/yuin/gopher-lua v1.1.1 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect