Auteur Sujet: Tutoriel pour accéder à un PC Ubuntu à distance: VNC encapsulé dans SSH  (Lu 28917 fois)

0 Membres et 1 Invité sur ce sujet

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Tutoriel pour accéder à un PC Ubuntu à distance: VNC encapsulé dans SSH
« Réponse #12 le: 02 novembre 2020 à 00:17:47 »
ca fait pas mal de manip quand meme...

sinon y'a Teamviewer ...

sinon pour le client , y'a novnc qui permet d'accéder a un hote distant vnc via un interface web:

sudo apt install novnc
websockify -D --web=/usr/share/novnc/  6080 localhost:5900 #ajuster le port a celui du vnc local
# ou voir /usr/share/novnc/utils/launch.sh
(on peut faire plus propre avec des certificats et une installation systemd ou via un daemon snap https://github.com/novnc/noVNC#quick-start )

Ensuite depuis une machine distante: http://ip:6080 depuis un navigateur web
Pour de l'accès occasionnel ca suffit largement et pas besoin d'installer quoique ce soit coté client.

Plutot que des tunnels ssh, perso j'utilise tailscale.com pour mettre un VPN P2P entre machines (ca évite d'ouvrir un port sur le router/box) et plus besoin de tunneler des services dans ssh (donc pas de sécu ssh a gerer). et je limite les binding importants a l'interface vpn (surtout quand y'a ipv6).

exemple entre 2 machines (on peut en avoir jusqu'a 100 gratuitement):


et vnc client vers les ip vpn.

la prochaine maj de tailscale intègrera un dns local pour utilise les noms de machines plutot que leur IP.

l'installation de tailscale sur chaque machine (linux, mac, windows, android, ios) est ultra simple.

sur ubuntu:
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/eoan.gpg | sudo apt-key add -
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/eoan.list | sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt-get update
sudo apt-get install tailscale
sudo tailscale up

Cela affiche une url pour s'authentifier une fois et c'est terminé la machine est en VPN avec les autres (vpn en maillage P2P direct  un a un).

vivien

  • Administrateur
  • *
  • Messages: 47 079
    • Twitter LaFibre.info
Tutoriel pour accéder à un PC Ubuntu à distance: VNC encapsulé dans SSH
« Réponse #13 le: 02 novembre 2020 à 07:31:49 »
Merci pour vos retours.

Un oeil la dessus, avec un proxy socks.
Oui, j'ai déjà fait un tunnel SSH avec Putty, mais c'est relativement complexe et demande deux logiciels externe (vs la solution en un clic d'Ubuntu).

SSH étant maintenant intégré avec Windows 10, j'imaginais des solutions plus simples.
Là, le boot sur ue clé bootable Ubuntu es encore plus simple.

sinon y'a Teamviewer ...
Il supporte VNC over SSH ? Il me semble qu'il ne peut se connecter que si le PC distant a installé le logiciel propriétaire.
Cela me semble problématique d'installer un logiciel propriétaire sur tous les Ubuntu pour un beoin rare de prise de controle depuis Windows.

y'a novnc qui permet d'accéder a un hote distant vnc via un interface web:
J'ai l'impression que cela expose bien plus de code que d'avoir uniquement SSH ouvert sur le PC client (dans mon tutoriel, VNC n'écoute que sur localhost).
Autre point problématique, le mot de passe est transmis en clair.

Plutot que des tunnels ssh, perso j'utilise tailscale.com pour mettre un VPN P2P entre machines (ca évite d'ouvrir un port sur le router/box) et plus besoin de tunneler des services dans ssh (donc pas de sécu ssh a gerer). et je limite les binding importants a l'interface vpn (surtout quand y'a ipv6).
Cette solution semble très intéressante.
Le point négatif que je vois, c'est que cela semble prendre plus de ressource ram (j'aide des utilisateurs qui ont souvent de vieux PC, avec souvent peu de ram)

kgersen

  • Modérateur
  • Abonné Bbox fibre
  • *
  • Messages: 9 078
  • Paris (75)
Tutoriel pour accéder à un PC Ubuntu à distance: VNC encapsulé dans SSH
« Réponse #14 le: 02 novembre 2020 à 16:45:56 »
J'ai l'impression que cela expose bien plus de code que d'avoir uniquement SSH ouvert sur le PC client (dans mon tutoriel, VNC n'écoute que sur localhost).
Autre point problématique, le mot de passe est transmis en clair.

avec novnc, VNC peut n'écouter que sur localhost aussi.
novnc c'est un client vnc en javascript qui tourne donc localement dans ton navigateur et accède au serveur vnc via un websocket. pour ce faire coté serveur on fait donc tourner un petit daemon qui fait une sorte de proxy vnc/websocket ( https://github.com/novnc/websockify )

client http ou https -> websockify -> protocol vnc -> vnc server

websockify a une option pour passer en https car effectivement si on n'a pas  de vpn il faut chiffrer sinon le mot de passe vnc passe en clair.

Dans tous les cas, le problème de ton tuto a mon avis c'est l'étape 3:  ouvrir un port dans la box. que ce soit pour ssh ou pour novnc. Ce n'est pas forcement toujours possible ou même souhaitable.

Il y a plusieurs solutions:

- un vpn P2P avec 'NAT traversal' comme tailscale.

- un produit comme TeamViewer

- initier le tunnel SSH depuis le serveur VNC mais ca suppose la présence d'un humain devant pour faire cela et ca suppose que le client VNC soit  un serveur SSH accessible (on déplace donc le probleme d'ouverture du port dans la box coté client). on peut éventuellement faire un script qui ouvre le tunnel au boot et le maintient (keepalive) mais c'est pas forcement souhaitable.

- utiliser upnpc pour ouvrir le port via UPnP-IGD : pas forcement possible ou actif sur toutes les box/routeurs.

- autre solution que je ne connais pas

Pour le client VNC Window 10 j'utilise l'extension "VNC Viewer for Google Chrome" qui marche encore sinon y'a l'exécutable portable (fichier exe unique donc) VNC Viewer de RealVNC: https://www.realvnc.com/fr/connect/download/viewer/ (choisir 'standalone EXE ..').
Il y a également TigerVNC ( https://github.com/TigerVNC/tigervnc )  qui est open source et un fork de TightVNC.  Binaire portable Windows: https://bintray.com/tigervnc/stable/tigervnc/1.11.0 (le dernier tout en bas)).
Je n'utilise pas TightVNC.


vivien

  • Administrateur
  • *
  • Messages: 47 079
    • Twitter LaFibre.info
Tutoriel pour accéder à un PC Ubuntu à distance: VNC encapsulé dans SSH
« Réponse #15 le: 30 janvier 2021 à 11:14:09 »
J'ai mon père, 79 ans, qui vient de se mettre au smartphone (Android).

Serait-il possible de lui installer un logiciel de prise de contrôle à distance de son Android, pour l'aider entre deux visites ?

buddy

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 15 096
  • Alpes Maritimes (06)
Tutoriel pour accéder à un PC Ubuntu à distance: VNC encapsulé dans SSH
« Réponse #16 le: 30 janvier 2021 à 18:04:15 »
Salut,

il y a quelques années j'utilisais Teamviewer de memoire. https://www.teamviewer.com/fr/solutions/acceder-et-assister-a-distance-les-appareils-android/

Je prenais bien le contrôle des smartphones depuis mon PC.

vivien

  • Administrateur
  • *
  • Messages: 47 079
    • Twitter LaFibre.info
Tutoriel pour accéder à un PC Ubuntu à distance: VNC encapsulé dans SSH
« Réponse #17 le: 30 janvier 2021 à 20:13:30 »
Merci, je vais tester.

proap

  • Abonné MilkyWan
  • *
  • Messages: 568
Tutoriel pour accéder à un PC Ubuntu à distance: VNC encapsulé dans SSH
« Réponse #18 le: 09 avril 2021 à 16:51:14 »
Salut,

il y a quelques années j'utilisais Teamviewer de memoire. https://www.teamviewer.com/fr/solutions/acceder-et-assister-a-distance-les-appareils-android/

Je prenais bien le contrôle des smartphones depuis mon PC.

est-ce que quelqu'un connait une solution pour androidTV (idem que pour vivien => assistance distante à mes parents)
J'ai déjà essaye TeamViewer sans trop de succès. Je n'ai rien trouvé quand on n'a pas accès root...

vivien

  • Administrateur
  • *
  • Messages: 47 079
    • Twitter LaFibre.info
Tutoriel pour accéder à un PC Ubuntu à distance: VNC encapsulé dans SSH
« Réponse #19 le: 09 avril 2021 à 16:52:19 »
J'ai oublié de faire un retour : Team Viewer sur Android répond bien à mon besoin.

Il faut par contre que la personne lance l’application pour pouvoir prendre le contrôle.

qbert

  • Abonné Starlink
  • *
  • Messages: 13
Pour accéder à distance à un PC avec Linux installé il y a aussi X2GO.

Présentation : https://wiki.x2go.org/doku.php/doc:newtox2go

L'installation du X2GO serveur est (à mon humble avis) super simple : https://wiki.x2go.org/doku.php/doc:installation:x2goserver

Idem pour le client X2GO (disponible sur plusieurs OS) : https://wiki.x2go.org/doku.php/doc:installation:x2goclient

C'est un logiciel libre : https://wiki.x2go.org/doku.php/sources:start

J'ai lu que parfois avec certain bureau graphique il peux y avoir des incompatibilités (https://wiki.x2go.org/doku.php/doc:de-compat), mais perso j’ai jamais eu aucun soucis. (j'utilise principalement XFCE)
« Modifié: 16 mai 2021 à 03:29:27 par qbert »

vivien

  • Administrateur
  • *
  • Messages: 47 079
    • Twitter LaFibre.info
C'est dommage que la documentation de mette pas en évidence les points fort de X2Go, vs la solution VNC proposée de base dans de nombreux systèmes Linux.

Les deux points faibles de la solution VNC encapsulé dans SSH c'est :
- Pas d'ouverture du flux via uPnP
- Pas de système simple pour récupérer l'IP Wan quand elle est dynamique

Quand j'aide des personnes âgées à distance et qu'il faut mettre en place l’accès à distance, ce sont ces deux points qui sont les plus difficiles.

qbert

  • Abonné Starlink
  • *
  • Messages: 13
Je suis tout à fait d'accord quand il s'agit de faire de l’assistance à distance.
Je pense également que les problématiques d''ip et uPNP sont principalement les raisons pour lesquelles des solutions comme Teamviewer sont "plus connues" du grand public (car cette solution utilise un serveur intermédiaire pour établir la connexion).

X2GO est, à mon avis, plutôt une solution pour la prise en main à distance avec un bureau graphique d'un PC Linux. (depuis un autre Linux,  Windows, etc ...)

Free_me

  • Abonné Free fibre
  • *
  • Messages: 3 074
  • Marseille

L'installation du X2GO serveur est super simple : https://wiki.x2go.org/doku.php/doc:installation:x2goserver


heu tout simple par rapport a quoi ? j'espere que tu compares pas a teamviewer ??
ouvrir un terminal et taper des lignes de commandes, desolé mais c'est tres tres tres loin d'etre 'simple'