9
votes

Transfert de port SSH .NET

J'essaie de construire dans un transfert de port SSH dans une application .NET que j'écris.

J'ai essayé d'utiliser SharpsSh , mais il faut que l'utilisateur entrait leur mot de passe à chaque fois, et je ne le veux pas. Je vais gérer le stockage du mot de passe.

J'ai téléchargé granados , mais il y a essentiellement zéro documentation pour cela. Comment puis-je accomplir un transfert de port avec des granados ou une autre autre bibliothèque SSH gratuite pour .NET?


0 commentaires

5 Réponses :


5
votes

Si vous configurez une touche DSA sur le serveur SSH à distance, vous pouvez enregistrer une clé pour l'utilisateur (faites-le comme une chose unique), puis enregistrez la touche sur le serveur en tant qu'utilisateur autorisé.


1 commentaires

Utiliser des clés est beaucoup dangereux pour les connecteurs inversés et l'empreinte digitale



4
votes

Ces alternatives C # sont dérivées de Java JSCH :

  1. SharpsSh (inactif depuis Jan 2010) / page de l'auteur / Article
  2. DotNetsh (inactif depuis Jun 2010)
  3. bibliothèque SSH.NET (actif à partir de janvier 2012)
  4. NSCH (généré / mise à jour de JSCH FEB 2012)

    the grenados page produit liens vers le Poderosa projet qui inclut un Plugin PortForwarding . code source pour le ConnectManager.cs Les fichiers doivent être appliqués Transfert de port. Voir cette réponse pour une recommandation .

    NSCH semble être un joyau caché au sein de Monodevelop's Ngit ; C'est principalement automatiquement converti ( info de fond ) de JSCH.

    Recherche complémentaire en févr. 2011 par Krzysztof Kowalczyk de Sumatra PDF.


0 commentaires

17
votes

Le La bibliothèque SSH.NET est un moyen simple d'y parvenir: xxx


5 commentaires

Ceci est vieux et je n'ai peut-être pas une réponse, mais c'est Client.net le serveur exécutant le serveur SSH? Que serait à distance.net? Toute demande à localhost: 1000 sera envoyée à client.net qui transmettra ensuite la demande à distance.net:80? Est-ce correct? Ou allez-vous aller directement à distance.net de mon localhost?


Oui, Client.net est le serveur SSH. Remote.Net:80 est l'ordinateur que vous souhaitez connecter via le tunnel SSH. Comme vous l'énoncez, toute demande à localhost: 10000 sera envoyée à client.net via SSH qui transmettra ensuite la demande à distance.net:80. Par conséquent, il n'y a pas de connexion directe entre Localhost et Remote.Net.


En fait, ce code ne fonctionne pas, pour une raison quelconque, SSH.Net ne résout pas correctement localhost correctement, 127.0.0.1 semble fonctionner correctement; pensais que cela a dû faire avec ma configuration réseau, de toute façon utiliser localhost n'est pas robuste ici


Y a-t-il un tutoriel sur la manière de configurer le serveur .NET SSH?


J'essaie d'obtenir ce travail, et on dirait que vous pouvez laisser le localhost hors du port transfert de l'appel - l'inconvénient est que toute IP peut alors se connecter à la SSH Server sur le port 10000 et il sera transféré à à distance.net:80 . Si ce n'est pas un problème de sécurité dans votre cas, vous allez bien - sinon vous devez comprendre votre nom d'hôte ou votre adresse d'hôte locale et mettre cela au lieu de localhost.



0
votes

Voici une méthode sans promouvoir aucun de ces paramètres : (transfert de port entièrement automatisé) en utilisant SharpsSH

(utilisateur, hôte, lport, rhost, rhost, rhost-clés-confirmation, mot de passe) < Pré> xxx


0 commentaires

0
votes

Bien que mal documenté - ou au moins la documentation qui me échappe - cela semble pouvoir gérer les connexions SSH, y compris les transferts de fichiers et le transfert de port: https://github.com/sshnet/ssh.net


0 commentaires