Je travaille sur un cluster distant via ssh avec l'option -X, car j'ai besoin de visualiser des données et des graphiques, via un protocole vpn. Parfois, en raison de l'instabilité de la connexion Internet, je perds ma session. Ils m'ont dit que je pouvais utiliser vnc afin de ne pas perdre ma session en cours, afin que, si la connexion Internet était interrompue, je puisse me reconnecter et continuer avec ma session précédemment ouverte.
Ce que je fais est de vous connecter au cluster distant 'remote.cluster' et de taper
vncserver :1
puis j'ouvre un autre terminal sur mon système et je tape
ssh -C -NL 5901:remote.cluster:5901 [email protected] &
Ensuite, je démarre vinagre sur mon système et je me connecte à l’aide du protocole ssh. Le problème est que je n'ai pas de transfert x11 et que je ne peux pas ouvrir les fenêtres. Si j'essaie de me connecter à l'aide du protocole vnc avec Vinagre, il ne se connecte pas, car le délai de connexion est dépassé.
Que devrais-je faire?
Si nous nous connectons à un serveur X distant via VNC, nous avons l’avantage que l’application graphique continuera à fonctionner même lorsque la connexion SSH à la télécommande est interrompue. Nous pouvons ensuite nous reconnecter pour reprendre l'application graphique. Voir également:
Pour accélérer la reconnexion, nous pouvons combiner la connexion à distance avec une session SSH en utilisant vncviewer de tightvncviewer avec l'option -via
. Par ceci, nous pouvons exécuter sur le serveur distant:
vncserver:0 ## or any other display number e.g. :1
établir une connexion sur le spectateur via un tunnel SSH:
vncviewer -via user@remote localhost:0
Cela nécessitera beaucoup plus de bande passante, car tout le bureau devra être transmis à partir du serveur VNC. Par conséquent, cela peut ne pas être vraiment une bonne idée pour les connexions à faible bande passante, mais cela peut vous donner une expérience un peu meilleure sur les connexions à bande passante élevée, mais instables, par rapport au transfert X.
La commande utilisée:
ssh -C -NL 5901:localhost:5901 [email protected] &
transmettre local 5901 -> remote.cluster: 5901
Vous pouvez donc vous connecter à localhost :: 5901 pour vous connecter à la session VNC s'exécutant sur remote.cluster (auquel vous n'avez pas d'accès direct).
Le transfert X11 est différent de VNC. Vous devez utiliser -X
, par exemple
ssh -X [email protected]
Ensuite, vous pourrez exécuter des applications GUI distantes sur votre ordinateur local, à condition que vous disposiez d’un serveur X fonctionnant localement (Ubuntu Desktop ou Xming sous Windows).
Mise à jour:
J'ai fait une erreur dans la transmission, cela devrait être:
ssh -C -L 5901:localhost:5901 [email protected]
Ensuite, vous pouvez passer de vnc à localhost: 5901, le trafic sera transféré à remote.cluster: 5901. Excuses pour la négligence ...
Si aucune interface graphique n'est requise, envisagez d'utiliser tmux
ou screen
pour éviter la perte de session.