sshnet / sshnet/SSH.NET

Remote connect with internal System.IO.Stream and without local Socket server

Aperta
#732 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C#
Stelle
4.4k
Fork
993
Merge medio
9g 21h
PR unite (30g)
1

Descrizione

Being a library, an application can benefit from being able to connect to a remote socket without a localhost socket binding.

Scenario

(Real-world scenarios help with concrete details. However, this issue is not limited to this kind of scenario)

  • A user is connecting to a PostgreSQL database server on an AWS server
  • The PostgreSQL server is not directly accessible on the internet, but can be accessed via SSH
  • The user is using DBeaver (an imaginary version built with .Net)
  • The user would need to specify at least the SSH IP + PEM certificate

Without this new feature:

  • The user would need to specify the Local Port and Remote Port on the SSH tab.
  • A Socket server would be bound on localhost
  • On the main tab, the user would need to specify whatever is on the local port
  • (Let's ignore the fact that you can leave Local port and Remote port as 0 for dynamic port allocation)
  • If the user wanted to connect to two remote PostgreSQL databases, the user would need to make sure they chose two different local ports that don't conflict.

Instead, with this new feature:

  • The SSH tab settings indicates that whatever is specified on the Main tab is going to be forwarded via the SSH tunnel.
  • The user types in localhost:5432 on the Main tab
  • When the connection is loaded, the SSH tunnel is opened, the remote IP:port is opened and then that stream is used directly by the application.
  • There is no localhost socket binding for forwarding

More Flexibility

This stream capability makes it possible for any application to connect to a remote IP:Port via SSH transparently and privately (without binding a socket server to a localhost port).

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Non vengono indicati file o test. Inizia tracciando il flusso esistente del port forwarding locale SSH e i relativi punti di ingresso della connessione; il lavoro è completato quando un’applicazione può usare l’IP e la porta remote inoltrate tramite SSH attraverso un System.IO.Stream interno, senza associare un socket localhost, incluse più connessioni a database remoti.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
networking
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.