SSH, VNC, Mac et PC

benjaminbis

Membre confirmé
4 Décembre 2005
85
2
Bonjour,

Depuis ce matin je me prends le chou pour mettre en place une solution VNC entre un Mac et un PC.

Le but est de prendre le contrôle du PC avec mon Mac (iBook G4 Tiger).

Pour le PC j'ai réussi à me débrouiller avec ce tuto : http://members.shaw.ca/nicholas.fong/vnc/

J'ai donc TightVNC (en serveur) et cygwin (pour le SSH). Je précise qu'il tourne sous Xp Home.
A priori ça tourne rond; le firewall, ZoneAlarm, semble laisser passer les requêtes sur les ports 22 et 5900..

J'ai un routeur Netgear, sur lequel le port 22 est ouvert, mais pas 5900 (car justement l'objectif c'est de tout faire transiter dans un tunnel crypté OpenSSH).

Sur le Mac (Tiger), Terminal et Chicken of the VNC (CotVNC sera plus simple).

Le problème : dans le Terminal, j'essaie d'établir une connexion SSH vers le PC : en tapant ceci "ssh -L 20:[adresse ip "extérieure du PC, du genre 83.56.145.156]:5900 -X -C nomutilisateur@[la même adresse que ci-dessus]

J'ai essayé d'autres combinaisons, mais je ne comprends pas franchement la logique de cette syntaxe.

Bref, dans le meilleur des cas, dans le terminal j'ai : Channel 3: Connection failed : Connection refused
et COTVNC me dit que le serveur a refusé la connexion.

[ Dans COTVNC je tente de me connecter sur localhost:22 et j'indique le mot de passe que j'ai défini sur mon PC dans TightVNC]

Voilà où j'en suis, j'ai fait plusieures recherches sur Google et sur les forums macgé, mais là je sèche..

Si quelqu'un comprend où je me trompe.. :up:

Merci
 
Déjà, une simple connexion ssh vers le pc marche ?

ssh nomutilisateur@ipdupc

?

Tu es à l'extérieur ou tu es sur le même sous-réseau ?

En relisant le man ssh et en regardant ta commande :

ssh -L 20:83.56.145.156:5900 -X -C [email protected]

1) je ne vois pas ce que ce -X vient faire (X11 forwarding ???)

4) 20 ? pas 22 ? mais il te faudrait avoir des privvilèges root, le man spécifiant que c'est obligatoire pour les ports au-dessous de 1024… en mettant 5900:83.56.145.156:5900 ton COTVNC utilisera le port 5900 local, qui passera dans le tunnel ssh et sera une fois arrivé forwardé au port 5900 du serveur VNC

7) le -C est-il vraiment utile ?

18) de là j'essaierais plutôt :
ssh -L 5900:83.56.145.156:5900 [email protected]
et dans COTVNC je me connecterais au serveur 127.0.0.1 (localhost) sur le port 5900

23) j'ai testé vite et ça ne marche pas :D
 
  • J’aime
Réactions: benjaminbis
En fait, l'erreur vient de l'option '-L'. Il faut bien voir que l'adresse que l'on y met est l'adresse vue du poste distant. Or, comment se voit-il lui-même, le poste distant ? Comme localhost, tout bêtement ;)
Donc la commande serait :
ssh -L 5900:localhost:5900 -X -C [email protected]

Précisions
:
a. il faut mettre l'adresse publique du routeur NetGear et configurer ce dernier pour qu'il redirige les connexions du port 22 vers le port 22 du PC.
b. il faut enlever du pare-feu du PC le trou de sécurité consistant à laisser passer les connexions au port 5900, d'autant que l'on n'en aura plus besoin ;)

J'oubliais : nom d'une pipe, mais c'est du réseau ! Je transfère :zen:
 
  • J’aime
Réactions: supermoquette
Déjà, une simple connexion ssh vers le pc marche ?

ssh nomutilisateur@ipdupc

?

Oui, ça ça marche très bien, j'ai dans le Terminal le prompt de cygwin.

Tu es à l'extérieur ou tu es sur le même sous-réseau ?

J'ai fait tout mes essais sur le même sous-réseau, je suis hors de chez moi ce soir je vais réaliser 2/3 tests

En relisant le man ssh et en regardant ta commande :

ssh -L 20:83.56.145.156:5900 -X -C [email protected]

1) je ne vois pas ce que ce -X vient faire (X11 forwarding ???)

4) 20 ? pas 22 ? mais il te faudrait avoir des privvilèges root, le man spécifiant que c'est obligatoire pour les ports au-dessous de 1024… en mettant 5900:83.56.145.156:5900 ton COTVNC utilisera le port 5900 local, qui passera dans le tunnel ssh et sera une fois arrivé forwardé au port 5900 du serveur VNC

7) le -C est-il vraiment utile ?

18) de là j'essaierais plutôt :
ssh -L 5900:83.56.145.156:5900 [email protected]
et dans COTVNC je me connecterais au serveur 127.0.0.1 (localhost) sur le port 5900

23) j'ai testé vite et ça ne marche pas :D

1) moi non plus je ne sais pas ce que vient faire le -X, je n'ai aucune notion en ssh et j'ai copié-collé une syntaxe qui semblait correspondre à ce que je cherchais

4) oui en effet c'est bien le 22 que j'ai utilisé, c'est juste une erreur de frappe, et effectivement je passe en root (su) pour pouvoir forwarder les ports

7) même réflexion que dans 1)

18) je vais me servir de ton exemple pour essayer de me sortir la bonne syntaxe

23) :D mais je pense que je vais bien avancer avec ce que tu m'as indiqué
 
En fait, l'erreur vient de l'option '-L'. Il faut bien voir que l'adresse que l'on y met est l'adresse vue du poste distant. Or, comment se voit-il lui-même, le poste distant ? Comme localhost, tout bêtement ;)
Donc la commande serait :
ssh -L 5900:localhost:5900 -X -C [email protected]

Précisions
:
a. il faut mettre l'adresse publique du routeur NetGear et configurer ce dernier pour qu'il redirige les connexions du port 22 vers le port 22 du PC.
b. il faut enlever du pare-feu du PC le trou de sécurité consistant à laisser passer les connexions au port 5900, d'autant que l'on n'en aura plus besoin ;)

Euh, je suis pas sûr d'avoir saisi ton explication du localhost; pour toi le poste distant ça va être le PC fixe à la maison ou le Mac en ballade ?

a. "l'adresse publique du routeur NetGear" ? En fait, j'ai une redirection DynDNS du style bidule.dyndns.org, et j'ai enregistré les paramètres DynDNS dans le routeur. Le soucis que j'ai et qui explique pourquoi je ne la donne pas ici, c'est que du coup quand on tape bidule.dyndns.org dans un navigateur ça pointe sur la page de configuration du routeur. J'estime que niveau sécurité c'est plutôt nul... en attendant de trouver une solution....

b. ok, je boucherais les trous quand je rentrerais chez moi... à moins que je n'arrive à prendre la main sur le pc :love:

J'oubliais : nom d'une pipe, mais c'est du réseau ! Je transfère :zen:
Je me suis basé sur un poste qui m'a bien aidé "Equivalent De Putty Sur Osx" où tu étais intervenu :up:

Je vais faire des essais je reviens vous tenir au courant !
 
Sur ton routeur, tu interdis toute connexion de l'extérieur (WAN) hormis le port 22. Ce dernier tu le redirige vers le PC. Le chic suprême serait de pouvoir rediriger un autre port que le 22 vers le port 22 du PC mais tous les NetGear ne le permettent pas.
Personnellement, pour le fun, je change les ports de mes services SSH ;)
Bref, tu n'autorises ainsi l'administration que depuis le LAN et hop ! (je crois qu'il y encore un paramètre dans la configuration qui permet de définir quelle adresse IP externe est autorisée à éventuellement administrer le routeur.

Pour en revenir à la commande SSH. Tu te connectes du Mac vers le PC (via le routeur) donc, du strict point de vue de cette commande, l'hôte local est le Mac et l'hôte distant le PC. L'option '-L' permet de faire la correspondance entre un port sur l'hôte local et un port sur une machine connue du PC. Dans ton cas, c'est le PC lui-même donc localhost convient. Mais s'il s'était agi d'une machine sur le LAN, il eût fallu écrire son nom ou son adresse IP telle que dans le LAN.

Un exemple : ton PC s'appelle hamlet et un deuxième PC du LAN s'appelle macbeth. Aucun des deux n'est connu dans le WAN ; chacun connaît l'autre par son petit nom. Tu as installé pour chacun un serveur VNC sur le port 5900. hamlet héberge le serveur SSH. Bien. Pour avoir un accès à chacun des deux serveurs VNC, tu ajouteras a ta connexion SSH les options suivantes :
ssh -L 1000:localhost:5900 -L 1100:macbeth:5900 -X -C [email protected]

Ainsi en connectant le client VNC de ton Mac sur le port local (de ton Mac) 1000, tu verras hamlet. Et sur le port local (de ton Mac) 1100, tu verras macbeth
De la sorte, hamlet route les paquets voulus vers macbeth et retour. Pratique.
 
Salut !

C'est trop bien, ça marche !

Merci beaucoup :zen:

J'ai tappé cette commande dans mon Terminal
ssh -L 22:localhost:5900 -L 22:bidule.dyndns.org:5900 [username]@bidule.dyndns.org

et il m'a affiché ça :
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 22

Je me suis dit : Bon, c'est pas grave, je vais regarder ce que ça donne sur CotVNC...

Dans CotVNC je me suis connecté sur 127.0.0.1:22 et j'ai entré le mot de passe défini dans TightVNC sur le PC et là miracle, mon desktop XP s'est affiché.

Toutefois, c'est hyper lent, et le tout est tinté en orange :confused:

Sur le PC j'ai installé un pilote recommandé sur le site de TightVNC, censé accélérer l'affichage sur le client qui prend le contrôle : DFMirage


Si je comprends bien, il ne me reste plus qu'a passer en 800*600 et mettre toutes les options graphiques au minimum ?

[Edit: En fait, DFMirage ne doit fonctionner que de PC à PC]
 
Il est normal que tu aies un message d'erreur ;) Tu cherches à affecter deux tuyaux au même port (22).

a) le port 22 est le port de SSH, sauf à faire des trucs marrants (c'est mon cas) donc il faut le laisser tranquille.
b) le port par défaut de VNC est 5900 : c'est là que le client espère se connecter ; mieux vaut donc mettre
Bloc de code:
ssh -L 5900:localhost:5900 [username]@bidule.dyndns.org
c) du coup, tu indiques au client VNC de se connecter en local sur le port 5900.
d) et ça marchera comme cela doit marcher.

PS : c'est sûr que VNC n'est pas bien rapide ...
 
Ah OK très bien, cette dernière syntaxe fonctionne au poil.
Juste penser du coup à connecter depuis CotVNC sur localhost:5900 :up:

Mais je suis très déçu par la vitesse, après 3 mouvements de souris et à peine un clic, ça ne suit plus :eek:

A tout hasard, est-ce que SSH influence sur la qualité de la transmission ?

Et je vais chercher ce qui existe d'autre en client VNC mais j'ai le sentiment que j'ai ce qui a de mieux (en gratuit) entre les mains..

:zen:
 
SSH influe, certes : cryptage / décryptage des données au passage :)
Mais VNC n'est de toutes façons pas du genre turbo.
 
  • J’aime
Réactions: benjaminbis