Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:x11vnc [25/03/2019 09:36] Debian Alain [Configuration] |
doc:reseau:x11vnc [25/03/2019 19:44] Debian Alain [création d'un alias] |
||
---|---|---|---|
Ligne 65: | Ligne 65: | ||
- | <note tip>de même que la sécurisation par mot de passe , x11vnc permet aussi la sécurisation par (clé) ssl. | + | <note tip>de même que la sécurisation par mot de passe , |
- | je me penche dessus actuellement ... </note> | + | |
+ | il y a possibilité de créer un "tunnel ssh" (voir ci - après et liens) </note> | ||
Ligne 94: | Ligne 95: | ||
on peut aussi la lancer en direct sur le pc distant où est installé le logiciel | on peut aussi la lancer en direct sur le pc distant où est installé le logiciel | ||
- | <code user>x11vnc -many -rfbauth ~/.vnc_passwd</code> | + | <code user>x11vnc -many -rfbauth ~/.vnc/passwd</code> |
+ | |||
+ | ===== Créer un tunnel ssh : ===== | ||
+ | |||
+ | L'inconvénient de cette méthode est que vnc passe par un port non crypté (5900 pour le display :0). | ||
+ | |||
+ | Pour traverser une box ou un routeur il faut ouvrir des ports spécifiques pour vnc. | ||
+ | |||
+ | L'idéal est de passer par un tunnel. | ||
+ | |||
+ | Seul le port 22 pour ssh est routé dans la box, tout ce qui passe à travers est crypté ainsi que les tunnels qu'il ouvrira. | ||
+ | |||
+ | <code user>ssh -L 5900:localhost:5900 machine_distante 'x11vnc -display :0'</code> | ||
+ | |||
+ | Pour connecter le client à l'autre bout du tunnel | ||
+ | |||
+ | dans une nouvelle console : | ||
+ | |||
+ | <code user>vncviewer localhost</code> | ||
+ | |||
+ | hop ! le bureau distant ... | ||
+ | |||
+ | ici , un script qui fonctionne à peu près . | ||
+ | |||
+ | il est un peu capricieux , aussi , n'hésitez pas à le relancer si au bout de 10 secondes vous n'avez toujours rien à l'écran . | ||
+ | |||
+ | <file bash scriptvnc.sh> | ||
+ | #!/bin/bash | ||
+ | |||
+ | #create SSH tunnel | ||
+ | ssh -f -L 5900:ip_distante:5900 -t user@ip_distante 'x11vnc -geometry 1280x800; /bin/bash' | ||
+ | |||
+ | #open vncviewer | ||
+ | vncviewer localhost:5900 | ||
+ | |||
+ | exit 0 | ||
+ | </file> | ||
+ | |||
+ | pour vous simplifier le travail , voici une commande à taper : | ||
+ | |||
+ | <code root>cat > ~/scriptvnc.sh <<EOF | ||
+ | #!/bin/bash | ||
+ | |||
+ | #create SSH tunnel | ||
+ | ssh -f -L 5900:ip_distante:5900 -t user@ip_distante 'x11vnc -geometry 1280x800; /bin/bash' | ||
+ | |||
+ | #open vncviewer | ||
+ | vncviewer localhost:5900 | ||
+ | |||
+ | exit 0 | ||
+ | EOF</code> | ||
+ | |||
+ | n'oubliez pas les droits : | ||
+ | <code root>chmod u+x ~/scriptvnc.sh</code> | ||
+ | |||
+ | dorénavant , <code user>./scriptvnc.sh</code>suffit pour lancer sur votre machine locale l'affichage de votre machine distante . | ||
+ | |||
+ | qui plus est , en passant par un tunnel ssh . (sécurité) | ||
+ | |||
+ | NB: n'hésitez pas à remplacer <user> par le nom de l'utilisateur distant | ||
+ | |||
+ | et <ip_distante> par l'adresse ip de votre machine distante . | ||
+ | |||
+ | vous pouvez accéder à l'ip de votre machine distante dans les paramètres de certaines box , ou , | ||
+ | |||
+ | sur la machine distante , en tapant <code user>ip a</code> et en cherchant les données "inet" pour l'interface concernée . | ||
+ | |||
+ | <note tip>vous pouvez éditer le script avec nano (voir plus amples infos dans les notes de bas de page)</note> | ||
+ | |||
+ | ===== connexion avec ssl (préambule) ===== | ||
+ | |||
+ | installer ssvnc en local | ||
+ | <code root>apt install ssvnc </code> | ||
+ | |||
+ | on crée le dossier /.vnc/certs/accepted/ | ||
+ | |||
+ | avant de le créer , vérifier , avec tree , s'il n'existe pas déjà : | ||
+ | |||
+ | auquel cas , l'étape de création est inutile . | ||
+ | <code user>tree ~/.vnc/</code> | ||
+ | <code root>mkdir ~/.vnc/certs/ | ||
+ | |||
+ | mkdir ~/.vnc/certs/accepted/</code> | ||
+ | |||
+ | en ssh , on se connecte à la machine distante : | ||
+ | <code user>ssh <user_distant>@<ip_distant></code> | ||
+ | |||
+ | on initialise la connexion :<code user>x11vnc -ssl SAVE-key</code> | ||
+ | après avoir rentré la passphrase , qu'on note sur un carnet de peur de l'oublier , | ||
+ | |||
+ | on va copier la clé depuis le serveur vers le client : | ||
+ | <code user>scp -r -p ~/.vnc/certs/server-key.crt id_locale@ip_locale:~/.vnc/certs/accepted/server-key.crt</code> | ||
+ | |||
+ | ===== connexion avec ssl (utilisation manuelle) ===== | ||
+ | |||
+ | relancer x11vnc en ssh | ||
+ | <code user>x11vnc -ssl SAVE-key</code> | ||
+ | rentrer la passphrase que l'on a noté (pour ne pas l'oublier). | ||
+ | |||
+ | on ne ferme pas la console distante (ssh) et | ||
+ | |||
+ | on ouvre une console locale : | ||
+ | <code user>ssvnc</code> | ||
+ | puis rentrer comme demandé l'adresse de l'hôte : | ||
+ | |||
+ | ici , le pc distant . | ||
+ | |||
+ | et le mot de passe du pc distant . | ||
+ | |||
+ | laisser les réglages par défaut et | ||
+ | |||
+ | cliquer sur connexion . | ||
+ | |||
+ | ssvnc demandera confirmation pour le certificat (la 1ere fois) et | ||
+ | |||
+ | lancera vncviewer en ssl . | ||
+ | |||
+ | voilà ! | ||
+ | |||
+ | |||
===== Démarrage automatique ===== | ===== Démarrage automatique ===== | ||
Ligne 111: | Ligne 232: | ||
on peut faire ceci : | on peut faire ceci : | ||
- | ce n'est pas une solution universelle . il faut parfois l'adapter . | + | <note warning>ce n'est pas une solution universelle . il faut parfois l'adapter .</note> |
<code root>cat > /etc/systemd/system/x11vnc.service <<EOF | <code root>cat > /etc/systemd/system/x11vnc.service <<EOF | ||
Ligne 128: | Ligne 249: | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
EOF</code> | EOF</code> | ||
+ | |||
+ | N.B.: remplacer <code>/path/.vncpasswd</code> par l'adresse du fichier de mot de passe . | ||
+ | |||
+ | ici (dans ce tuto): <code>/home/<user>/.vnc/passwd</code> | ||
+ | |||
+ | par exemple : <code>/home/switch/.vnc/passwd</code> | ||
on attribue les bons droits au fichier : | on attribue les bons droits au fichier : | ||
Ligne 152: | Ligne 279: | ||
===== Astuces :) ===== | ===== Astuces :) ===== | ||
Lancer un serveur vnc à distance , puis s'y connecter de chez vous, en une commande grâce à ssh : | Lancer un serveur vnc à distance , puis s'y connecter de chez vous, en une commande grâce à ssh : | ||
+ | il s'agit d'un "tunnel ssh" . | ||
+ | |||
<code user>ssh -f -L 5900:localhost:5900 your.ssh.server "x11vnc -safer -localhost -nopw -once -display :0"; vinagre localhost:5900</code> | <code user>ssh -f -L 5900:localhost:5900 your.ssh.server "x11vnc -safer -localhost -nopw -once -display :0"; vinagre localhost:5900</code> | ||
+ | |||
+ | dans le cas présent , vous pouvez remplacer "vinagre" par "vncviewer" . | ||
+ | |||
+ | ce qui donne : | ||
+ | <code user>ssh -f -L 5900:localhost:5900 your.ssh.server "x11vnc -safer -localhost -nopw -once -display :0"; vncviewer localhost:5900</code> | ||
+ | |||
+ | pareil : s'il est un peu capricieux , n'hésitez pas à le relancer plusiers fois de suite (2 ou 3 fois suffiront , normalement) | ||
Ligne 179: | Ligne 315: | ||
<code>adaptez /home/switch/ à votre configuration . | <code>adaptez /home/switch/ à votre configuration . | ||
normalement /home/<utilisateur>/</code> | normalement /home/<utilisateur>/</code> | ||
+ | |||
+ | avec un tunnel ssh , on peut obtenir ceci : | ||
+ | <code user>nano .bash_aliases</code> | ||
+ | <code user>alias assistance='ssh -f -L 5900:localhost:5900 your.ssh.server "x11vnc -safer -localhost -nopw -once -display :0"; vncviewer localhost:5900'</code> | ||
+ | |||
+ | |||
je ne sais plus s'il faut redémarrer la session ou le pc après la création d'un alias . | je ne sais plus s'il faut redémarrer la session ou le pc après la création d'un alias . | ||
Ligne 187: | Ligne 329: | ||
- | ===== culture générale ===== | + | ===== culture générale <biliographies> ===== |
- | à lire , avant tout : | + | lectures utiles à compulser librement ou en cas de curiosité : |
x11vnc : | x11vnc : | ||
Ligne 202: | Ligne 344: | ||
[[https://forum-francophone-linuxmint.fr/viewtopic.php?f=22&t=12697#p145523 | linux mint perso ]] | [[https://forum-francophone-linuxmint.fr/viewtopic.php?f=22&t=12697#p145523 | linux mint perso ]] | ||
- | [[http://www.karlrunge.com/x11vnc/ | karlrunge ]] | + | [[http://www.karlrunge.com/x11vnc/ | karlrunge (eng.)]] |
+ | |||
+ | [[https://www.mankier.com/1/x11vnc | x11vnc : commandes (eng.) ]] | ||
+ | |||
+ | Site généraliste très intéressant (ssh , vnc , ssvnc , ...) : | ||
+ | |||
+ | [[https://pronflette.developpez.com/tutoriels/controle-distance/]] | ||
+ | |||
+ | vnc : | ||
+ | |||
+ | [[https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-vnc-on-debian-9 | install and configure vnc (eng.) ]] | ||
tigervnc : | tigervnc : | ||
Ligne 221: | Ligne 373: | ||
[[https://debian-facile.org/doc:reseau:ssh:serveur|serveur ssh]] | [[https://debian-facile.org/doc:reseau:ssh:serveur|serveur ssh]] | ||
+ | |||
+ | tunnel ssh : | ||
+ | |||
+ | [[http://mad-b.net/docs/linux-vncssh.html | vnc : accès par tunnel ssh ]] | ||
+ | |||
+ | [[https://superuser.com/questions/1270767/ssh-tunnel-and-vnc | super user : tunel ssh (eng.) ]] | ||
+ | |||
+ | ssl : | ||
+ | |||
+ | [[http://www.karlrunge.com/x11vnc/ssl.html | ssl x11vnc (eng.)]] | ||
+ | |||
+ | [[http://ssvnc.sourceforge.net/ | ssl visualisation en graphique ]] | ||
+ | |||
+ | [[http://www.sebsauvage.net/comprendre/ssl/ | explications sur ssl ]] | ||
+ | |||
+ | nano : | ||
+ | |||
+ | [[https://debian-facile.org/doc:editeurs:nano | petit mode d'emploi de nano ]] | ||
+ | |||