Forum Linux.général ssh 3 machines et redirection

Posté par  .
Étiquettes : aucune
0
21
avr.
2009
Bonjour

Je suis sur un problème avec ssh depuis un moment maintenant et 1 truc doit m'échapper mais je ne vois pas quoi

PC 1 --------> Serveur

sur le serveur (192.168.0.6) j'ai ssh qui tourne
sur le PC 2 (192.168.0.3) j'ai VNC et j'éxécute la commande suivante :

plink -C -v -ssh -2 -P 22 -N -R 18292:localhost:5900 -pw mdp utilisateur@192.168.0.6

sur le PC 1 (192.168.0.9) je lance la commande suivante :

plink -C -v -ssh -2 -P 22 -N -L 18293:localhost:18292 -pw mdp utilisateur@192.168.0.6


Ensuite je lance la commande suivante sur le PC1
xvncviewer localhost:18293

et là un beau message qui m'insulte en me disant que ma connexion est refusée

pourtant sur le papier je pense que je ne suis pas mal puisque ma boucle est locale sur le serveur :'( bref je suis preneur de toute idée qui pourrait m'aider à avancer ...

Merci d'avance
  • # re. ssh 3 machines et redirection

    Posté par  . Évalué à 1.

    test avec cette ligne sur le pc 1

    plink -C -v -ssh -2 -P 22 -N -L 18293:192.168.0.6:18292 -pw mdp utilisateur@192.168.0.6
  • # Et si on commençait ...

    Posté par  . Évalué à 2.

    ... à exprimer en français tes besoins ? ;)

    Tu veux à partir du PC1 te connecter en VNC au PC2.
    Comme cela n'est pas possible, tu veux relayer la connexion à l'aide de la machine "Serveur".

    Pour se faire, tu vas donc relayer la connexion de ton PC1 pour faire comme si tu te connectais à partir de "Serveur" sur le PC2.
    Comme je vois que tu utilises les 2 relais SSH possibles, j'en déduis qu'une connexion VNC simple de "Serveur" vers PC2 est impossible (pare-feu peut être). Histoire de bien faire compliqué ;)

    Donc pour partir du PC1 et faire comme si tu te connectais du serveur (à faire sur PC1)
    ssh -N -L <port local>:Serveur:<port relais distant> Serveur
    (je te laisse le soin des autres options)

    Pour partir de "Serveur" vers le PC2 où tourne un service VNC écoutant sur le port 5900 (à faire de "Serveur"):
    ssh -N -L <port relais distant>:PC2:5900 PC2
    Comme je le vois ainsi, PC1 demande à "Serveur" de prendre à sa charge le transfért son <port local> vers lui.
    Et "Serveur" demande de même à PC2 à propos de son <port relais distant>.

    Je pense même que cela revient à se que tu as fait mais d'un autre point de vue.
    Je n'ai pas testé, n'ayant pas la même configuration sous la main. Pourrais-tu tester et me dire ce qu'il en est ?

    Merci !
    • [^] # Re: Et si on commençait ...

      Posté par  . Évalué à 1.

      Je me réponds à moi-même, car j'ai un peu plus analysé tes commandes.

      Soient PC1, S et PC2.
      Reprenons tes commandes dans l'ordre:

      Sur PC1:
      ssh -P 22 -N -L 18293:localhost:18292 S
      Tu demandes que S s'occupe de relayer le port 18293 de PC1 vers le port 18292 de la machine "localhost" qui vue de PC1, n'est autre qu'elle-même. En clair tu boucles en local le port 18292 et 18293.
      Tu devrais mettre, pour davantage de clarté et éviter les confusions:
      ssh -P 22 -N -L 18293:S:18292 S
      Là tu demandes à S de relayer le port local 18293 de PC1 vers le port 18292 de S lui-même. Première demi-liaison de faite (PC1:18293 <-> S:18292).

      Sur PC2:
      ssh -P 22 -N -R 18292:localhost:5900 S
      Tu demandes à PC2 de relayer le port 18292 de S vers la machine localhost qui vue de PC2 est bien elle-même.
      Pour davantage de clarté, j'aurais mis:
      ssh -P 22 -N -R 18292:PC2:5900 S
      Là tu vois clairement que tu demandes à PC2 de relayer le port 18292 de S vers son port 5900. Deuxième liaison de faite (S:18292 <-> PC2:5900).

      À ce moment, tout devrait fonctionner je pense (et que mon commentaire ci-dessus est faux).
      À toi de tester et de confirmer ou infirmer cela ici, pour que cela serve à d'autres.
  • # Tests

    Posté par  (site web personnel) . Évalué à 2.

    Il faut faire des tests intermédiaires :
    - sur pc2 que retourne telnet localhost 5900
    - sur le serveur après connexion depuis pc2 que retourne telnet localhost 18292
    - sur pc1 après les connexions, que retourne telnet localhost 18293
  • # pfiouh la la

    Posté par  . Évalué à 1.

    bon je vais tester toutes vos solutions, mais je pensais que je serai prévenu en cas de réponse à mon post, bref voilà les élèments que je peux apporter :
    - je ne peux pas utiliser la commande ssh (pour cause de windows) donc j'utilise obligatoirement plink. je sais qu'il y a ssh avec cygwin mais pour des raisons techniques je ne peux pas l'utiliser et je sais qu'avec plink ça doit fonctionner.
    - sur PC2 un telnet 5900 = RFB 003.008
    donc connexion à tightvnc
    - un telnet depuis le serveur sur le port 18292 retourne le message de connexion à VNC donc :
    RFB 003.008
    - sur pc1 un telnet localhost sur le port 18293 me renvoi un connexion refused ...
    telnet: Unable to connect to remote host: Connection refused

    pour infos le but est de mettre en relation 2 pc qui se trouvent sur des réseaux différents et éventuellement derrière un FW ce qui empêche une connexion directe d'où l'utilisation d'un serveur qui sert de "passerelle" et qui héberge le serveur ssh

    pour donner plus d'infos il se trouve que j'essaye de cloner un soft qui s'appelle showmypc ... (car il n'est pas sous licence gpl) tout fonctionne correctement sauf cette partie, et il se trouve que showmypc utilise plink et que les lignes de commandes plink que j'utilise sont les mêmes que showmypc

    j'ai aussi modifié la ligne de connexion de pc2 vers le serveur qui est en fait :
    plink.exe -C -v -ssh -2 -P 80 -N -R 18292:localhost:5900 -L 18292:localhost:18292 -pw mdp utilisateur@192.168.0.6

    marmotte_57 : j'ai essayé de faire du français, mais il est clair que ce genre de problème n'est pas évident à expliquer d'où mon "magnifique" schéma en début de post ;)
    et je ne sais pas (encore) si je peux utiliser les commandes ssh que tu me donnes avec plink je jette un oeil

    cyriltom : le remplacement de localhost par 192.168.0.6 ne change rien au problème

    J'ai volontairement mis 192.168.0.6 comme adresse ip, mais logiquement c'est une IP publique.

    Merci encore pour votre aide
    • [^] # Re: pfiouh la la

      Posté par  . Évalué à 1.

      Hello,

      Ne prends pas en mal la remarque sur le français, en fait je voulais juste aborder le sujet de façon plus didactique, pour aider un novice (lambda, pas toi, je ne connais pas ton niveau) dans le cheminement de la réflexion. Je trouvais que cela était un bon cas d'école, et j'avais envie de le rependre de façon la plus claire possible. Il n'y avait aucune attaque visant ta formulation.

      plink, je ne connais pas en fait, ou du moins juste de nom. Donc je ne sais pas ce que ça change de passer par lui.

      Sinon ta ligne de commande m'intrigue toujours. Si je traduis (elle est exécutée de PC2):
      plink.exe -C -v -ssh -2 -P 80 -N -R 18292:localhost:5900 -L 18292:localhost:18292 -pw mdp utilisateur@192.168.0.6
      Tu demandes à PC2 de relayer le port 18292 de 192.168.0.6 à son propre port 5900 (demi laison OK), et à 192.168.0.6 de relayer le port 18292 de PC2 au port 18292 de ... PC2 !! , chose qui ne donnera rien je pense.
      Tu dois passer par 2 commandes distinctes, une sur PC1 et une sur PC2. Enfin c'est ce que je pense.

      Tiens nous au courant ;)
      • [^] # Re: pfiouh la la

        Posté par  . Évalué à 1.

        'lut

        je n'ai pas mal pris la remarque il y avait un smaille laid (xptdr, mdr, lol, kikoulol, ...) bref effectivement c'est un bon cas d'école ... pour mes commandes notamment celle exécuté sur pc 2 la traduction serait plutôt la suivante :
        j'ouvre le port distant -R(emote) du serveur 18292 que je relie à mon PC2 sur le port 5900
        Ensuite je relie mon port local -L(ocal) de PC2 18292 au port 18292 su serveur, pourquoi je ne comprend pas mais il faut le faire ...

        Ensuite effectivement je n'utilise pas les mêmes commandes sur le PC1 et le PC2 car je n'ouvre pas de port en remote sur le PC1 mais je relie uniquement le port serveur 18292 au -L(ocal) au 18293 de PC1 (ça pourrait être n'importe quel port en fait ...)

        ce que je ne comprend pas c'est que théoriquement (ah la théorie ... ) ce n'est pas compliqué, mais au final ça marche pô :'(

        Merci encore de ton aide
  • # résolu

    Posté par  . Évalué à 1.

    en fait le problème ne venait pas de la ligne de commande utilisée mais de plink et ma machine, plink se borne à utilisr ipv6 :'(
    j'explique le tout sur mon site : [http://www.pc-kc.fr/tutos/ipv6-un-protocole-trop-loin-ou-tro(...)]

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.