GNU/Linux >> Tutoriels Linux >  >> Linux

Ssh - Bureau à distance sur tunnel inverse Ssh pour remplacer Teamviewer ?

Je souhaite ouvrir une session de bureau à distance de mon ordinateur portable à mon ordinateur de bureau via mon tunnel SSH (inverse). Cela devrait être simple (ou du moins faisable), non ? Jusqu'à présent, j'utilisais Team Viewer pour me connecter au bureau à distance. J'aimerais obtenir des résultats similaires sans Team Viewer.

Voici à quoi ressemble mon tunnel SSH :

laptop--->nat--->middleman<--nat<--desktop

Toutes les machines fonctionnent sous Linux (principalement Kubuntu 12.04 ou OpenSuse 12.3). Je ne peux modifier aucun port ni modifier la configuration des routeurs nat.

Je vais décrire mon tunnel SSH car comprendre cela semble être nécessaire pour résoudre le problème VNC / bureau à distance qui est au cœur de ma question. Concernant cette étape :

middleman<--nat<--desktop

…voici comment il est établi :

autossh -M 5234 -N -f -R 1234:localhost:22 [email protected]

Concernant cette étape :

laptop--->nat--->middleman

Je peux me connecter à l'intermédiaire comme suit :

[email protected]:~$ ssh -i ~/.ssh/id_rsa [email protected]  

Cependant, ce que j'ai réellement besoin de faire, c'est de me connecter directement au bureau, pas à l'intermédiaire. Pour ce faire, j'utilise netcat ("nc") sur middleman. Sur cette base, il semble que nc soit requis. J'ai donc modifié mon fichier de configuration SSH sur un ordinateur portable pour utiliser ProxyCommand et nc :

[email protected]:~/.ssh$ nano config

Le contenu est :

Host family_desktops
  ProxyCommand ssh middleman_fqdn nc localhost %p
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

middleman_fqdn est comme "middleman.com"

Ensuite, je me connecte simplement au "bureau" en une seule étape :

[email protected]:~$ ssh family_desktops -p 1234

(J'ai obtenu ce travail sur la base de l'aide ici et ici et d'autres questions connexes que j'ai posées. J'ai posé une tonne de questions sur ce sujet parce que je me débat avec depuis de nombreuses semaines.)

Avec cette connexion SSH, j'atteins un shell entièrement fonctionnel sur mon ordinateur étiqueté desktop . Parfait.

Maintenant, j'ai juste besoin d'une solution de bureau à distance de type VNC (ou TeamViewer) via ce tunnel SSH. Comment ?

Voici ce que j'ai essayé jusqu'à présent :

intermédiaire<–nat<–bureau

autossh -M 5235 -N -f -R 1235:localhost:5901 [email protected]

avec cette connexion établie :

x11vnc -autoport 5901 

Je regarde pour m'assurer qu'il se connecte au port 5901, ce qu'il fait.

ordinateur portable—>nat—>intermédiaire<–nat<–ordinateur de bureau

ordinateur portable ~/.ssh/config :

Host family_desktops
  ProxyCommand ssh -NL 5901:localhost:1235 middleman.com nc localhost 1235
  User admin
  PasswordAuthentication no
  IdentityFile ~/.ssh/my_id_rsa

Configuration du tunnel :

[email protected]:~$ sudo ssh family_desktops

Client VNC :

connect to localhost:5901

Cela donne une erreur de "serveur introuvable"

J'ai essayé un certain nombre de variantes du ProxyCommand, aucune n'a réussi. Évidemment, je devine quels paramètres devraient être dans ProxyCommand et lesquels devraient être sur la ligne de commande ssh. Je vois des problèmes potentiels avec ma configuration, mais je n'ai pas été en mesure de comprendre ce qui fera que tout fonctionnera.

Connexe :Tuer tous les travaux d'arrière-plan ?

PS Comme mentionné, j'ai posé plusieurs questions à ce sujet. Certains d'entre eux m'ont rapproché de la solution et forment la base de ma question actuelle. D'autres de mes questions précédentes sur ce sujet montrent simplement mon ignorance et mon incapacité à poser la question sous la bonne forme. À ce stade, cette question actuelle représente ma meilleure capacité à énoncer quel est mon problème et quelle est la solution souhaitée, mais certaines de mes autres questions sont également ouvertes. En voici une qui est pertinente.

Réponse acceptée :

Pouvez-vous essayer de faire la deuxième étape sans faire le nc? C'est-à-dire - faites le VNC avec juste le -L et -R. Je crois que le problème est que votre session netcat se reconnecte à un fichier déjà ouvert. Donc, lorsque vous faites des trucs VNC, n'utilisez pas netcat.


Linux
  1. Ssh - Rediriger Stdout sur Ssh ?

  2. Ssh – Trafic de tunnel via une autre machine via Ssh ?

  3. Ctrl-c Gestion en session Ssh ?

  4. Comment configurer un tunnel SSH inversé sous Linux

  5. comment tunneliser Windows Remote Desktop via ssh à l'aide d'une machine Linux?

Comment utiliser SSHFS pour monter des répertoires distants sur SSH

SSHFS :montage d'un système de fichiers distant via SSH

Dépannage du bureau à distance

Ssh – Comment fonctionne le tunneling Ssh inversé ?

4 façons de transférer des fichiers entre des systèmes distants et locaux via SSH

Comment utiliser SSHFS Mount avec des répertoires distants via SSH