Considérez une situation où je me connecte via SSH de la machine A à la machine B, j'ai une session X sur la machine A et je veux exécuter un programme X sur B.
ssh -X B
rend ce travail transparent. Mais que faire si la configuration du serveur manque X11Forwarding yes
, je n'ai pas d'autorisations root sur le serveur et l'administrateur du serveur est indifférent?
Il est évidemment possible de transmettre la connexion X11, car je peux transférer ce que je veux sur le canal SSH. En fait, si le serveur X local autorise les connexions TCP, c'est aussi simple que ssh -R 6010:localhost:6000
(d'être ajusté pour les numéros d'affichage). Qu'en est-il du cas commun où le serveur X local autorise uniquement les connexions de socket? Comment faire le transfert X de manière pratique et sécurisée, avec un minimum d'exigences d'installation (en particulier sur B)?
la source
.ssh/config
côté client et cela dans votre.profile
côté serveur, puis exécutez simplementssh B
"./tmp/.X11-unix/X0
c'est un socket de domaine Unix, pas un FIFO, donc toute tentative de redirection se termine parENXIO: No such device
.Faites tourner un serveur X supplémentaire en utilisant Xephyr. C'est pour la sécurité - cela empêche le système distant de compromettre le vôtre.
Utilisez SSH pour transférer un socket distant vers le socket Xephyr. SSH prend également en charge le transfert des sockets Unix.
Définissez correctement les variables d'environnement sur le serveur distant.
la source