Support OpenSSH TCP and Unix socket forwarding in the built-in SSH server

Abierto
#158 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
35/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
go

Línea de trabajo

Start with tailcat_ssh.go, which the issue identifies as registering only the session channel handler, and inspect how the built-in SSH server handles channels and requests. The requested work covers TCP and Unix-socket forwarding, listener and destination restrictions, and tests for -L, -R, -D, and socket forwarding; done means those behaviors are supported and tested.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Problem

Tailcat's built-in SSH server only registers the session channel handler, with an empty RequestHandlers map:

https://github.com/tailscale/tailcat/blob/main/tailcat_ssh.go

This means standard OpenSSH forwarding is unsupported:

  • Local TCP forwarding (ssh -L) and dynamic forwarding (ssh -D): direct-tcpip
  • Remote TCP forwarding (ssh -R): tcpip-forward, cancel-tcpip-forward, forwarded-tcpip
  • Unix-domain socket forwarding: OpenSSH [email protected], [email protected], and corresponding forwarded/cancel operations

These features are important for SSH-based remote development clients, including those that use port or socket forwarding alongside an interactive terminal.

Requested behavior

Please consider optional support for OpenSSH TCP and Unix-domain socket forwarding in the built-in SSH server, with appropriate listener/destination restrictions and tests for ssh -L, -R, -D and socket forwarding.

Related issues

  • #14: Tailcat transport-level TCP forwarding, rather than SSH protocol channels
  • #93: Tailcat transport-level Unix socket serving, rather than SSH protocol forwarding

Using an existing OpenSSH daemon behind a Tailcat tunnel is a workaround, but requires a separately managed SSH server.

Lenguaje dominante
Go
Estrellas
8.8k
Forks
404
Merge medio
3 h 48 min
PR fusionados (30 d)
1

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de tailscale/tailcat

Todos los issues de tailscale/tailcat

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.