Support SSH connections over direct-tcpip channels without a local TCP listener
Los mantenedores suelen responder en 3 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 12/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- csharp
- Área
- networking, security
Línea de trabajo
The request concerns the port-forwarding and channel code in the SSH.NET library, where ForwardedPortLocal currently opens a local listener. Start by reading how direct-tcpip channels are opened and how SshClient and SftpClient establish their transport. Done would be a public API that connects a target client through an existing jump-host session without a listener, with tests covering per-hop authentication and cancellation. This is design work with no comments yet.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
We use SSH.NET 2026.0.0 for SSH and SFTP connections through jump hosts.
Our current implementation connects to the jump host, starts a ForwardedPortLocal on an ephemeral loopback port, and connects the target SshClient or SftpClient through that port.
The local listener remains accessible to other local processes for the lifetime of the connection. Those processes still need to authenticate to the target, but they gain network access through the application's authenticated jump-host connection.
Stopping the forwarded port also closes its active channels, so calling Stop() after the target handshake does not solve this.
Requested capability
Provide a supported public API for connecting SshClient and SftpClient through an authenticated jump-host connection without creating a local TCP listener.
Possible API directions:
- Native jump-host support.
- Exposing a direct-tcpip channel as a duplex transport, with a way to connect an SSH client over that transport.
These are suggestions; we would welcome an approach that fits SSH.NET's architecture.
Required behavior
- Preserve independent authentication and host key verification for each hop.
- Support password, private key, and externally supplied agent-backed authentication methods.
- Support cancellation during channel opening and target connection establishment.
- Keep the channel operational throughout
- Lenguaje dominante
- C#
- Estrellas
- 4.4k
- Forks
- 987
- Merge medio
- 2 d 6 h
- PR fusionados (30 d)
- 4
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de sshnet/SSH.NET
-
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
Los mantenedores suelen responder en 3 días
-
Proposal: built-in tracing and metrics via ActivitySource/MeterPosiblemente ocupada @YoussefElshemi la tomó hace 10 días. Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
sshnet/SSH.NET#1854 · 4 comentarios · 3 reacciones ·
Los mantenedores suelen responder en 3 días
-
MAC ERROR after migrate to 2026Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
sshnet/SSH.NET#1853 · 4 comentarios ·
Los mantenedores suelen responder en 3 días
-
Dificultad 4/5 3-5 días Aptitud para principiantes 69/100
Los mantenedores suelen responder en 3 días
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
sshnet/SSH.NET#1843 · 1 comentario ·
Los mantenedores suelen responder en 3 días
Todos los issues de sshnet/SSH.NET
Issues similares
-
needs-triage
Dificultad 1/5 1-3 horas Aptitud para principiantes 76/100
Azure/azure-sdk-for-net#64658 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
dotnet/aspnetcore#70370 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NethermindEth/nethermind#15684 ·
Los mantenedores suelen responder en 1 día
-
area/ai-assistant squad/flyt
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
Altinn/altinn-studio#21798 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
SubtitleEdit/subtitleedit#16699 ·
Los mantenedores suelen responder en 1 día