Existe-t-il un moyen de visualiser (et de contrôler) un poste de travail distant via SSH? Je n'aurai pas d'accès physique à la machine hôte distante.
Ceci peut être réalisé avec vino vnc server & remmina (les deux sont fournis par défaut avec ubuntu; sinon, installez-le en exécutant Sudo apt-get install remmina
). Ensuite, exécutez les commandes suivantes de l'ordinateur local dans l'invite du terminal:
ssh -Y gman@remote
. Utilisez le transfert X11 de confiance, sinon cela ne fonctionnera pas
vino-preferences
. Cela ouvrira les préférences de vino.
Cliquez également sur configure network automatically to accept connection
. Mais n'entrez aucun mot de passe, son code base64 . Puis cliquez sur fermer. Puis lancez:
Sudo -s
export DISPLAY=:0.0
xhost +
/usr/lib/vino/vino-server &
Il va démarrer le serveur vino.
Déconnexion du serveur:
xhost -
Press CTRL+C twice
exit
exit
Ensuite, ouvrez remmina . Choisissez vnc
sous protocole.
Sous l'onglet basic
, indiquez l'adresse du serveur dans le champ server
.
Sur l'onglet ssh, cliquez sur enable ssh tunnel
. Sous ssh authentication
, cela pourrait être password
ou public key
:
Cliquez sur Enregistrer. Ensuite, double-cliquez sur nom-connexion (home-desktop comme indiqué dans l'image) pour lancer la navigation sur le bureau distant.
x11vnc
est un simple serveur VNC et vous n'aurez pas à vous soucier des paramètres de Gnome ou de 500 pare-feux, il vous suffit d'installer x11vnc
sur tous vos ordinateurs (avec marionnette ou tout ce que vous utilisez pour le contrôle en masse).
Ensuite, à partir de votre ordinateur local, lancez:
ssh user@Host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"
Évidemment, permuter user@Host
pour le nom d'utilisateur et le nom d'hôte/IP de l'ordinateur distant.
Ensuite, utilisez un client VNC de votre choix pour vous connecter à localhost:5900
. La commande SSH démarre un serveur vnc sur l’ordinateur distant, puis redirige ce port par SSX. Vous n'avez pas besoin d'ouvrir de ports (tant que vous pouvez déjà utiliser SSH).
Si vos paramètres d’affichage sont amusants sur vos ordinateurs, vous feriez mieux de laisser le segment -display :0
dans la commande SSH. x11vnc
tentera alors automatiquement de trouver le bon affichage.
Source: askubunt
En supposant que vous ayez déjà configuré un OpenSSH Server
sur votre ordinateur hôte, vous devez d'abord activer le contrôle du bureau sur votre ordinateur hôte. Si vous pouvez d'abord activer le contrôle du bureau sur votre ordinateur hôte localement, allez à 1a. Si vous devez d'abord activer le contrôle du bureau sur votre ordinateur hôte à distance, dirigez-vous sur 1b.
Créez ensuite un profil de client de bureau à distance sur votre ordinateur client afin de vous connecter à la machine hôte via un tunnel SSH et, au final, de visualiser et de contrôler le bureau de la machine hôte via un tunnel SSH.
Procédez comme suit sur la machine hôte:
vino-preferences
vino-preferences
également dans Dash sous Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Procédez comme suit sur l'ordinateur client, en remplaçant 123.123.12.3
par l'adresse IP de votre ordinateur hôte:
ssh -Y 123.123.12.3
vino-preferences
vino-preferences
également dans Dash sous Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Procédez comme suit sur la machine cliente:
remmina
Remmina Remote Desktop Client
Ctrl+N ou Connexion> Nouveau
Server
name__SSH
name__Enable SSH Tunnel
SSH Authentication
<username>
et votre modeSur la machine cliente, lorsque le système vous demande le mot de passe <username>
, entrez-le pour créer le tunnel SSH. Lorsque le système vous demande le mot de passe VNC, entrez la phrase secrète que vous avez précédemment saisie dans la machine hôte.
En cas de succès à cette étape, vous devez maintenant afficher et contrôler le bureau de la machine hôte à partir de votre ordinateur client via un tunnel SSH.
J'ai pu configurer une nouvelle installation Ubuntu 16.04 à partir d'une connexion ssh distante avec le script suivant:
#!/bin/bash export DISPLAY =: 0 lire -e -p "Mot de passe VNC:" -i "ubuntu" mot de passe dconf écrire/org/gnome/desktop/remote-access/enabled true dconf écrire/org/gnome/desktop/remote-access/Prompt-enabled false dconf écrire/org/gnome/desktop/remote- méthodes d’accès/d’authentification "['vnc']" dconf write/org/gnome/desktop/accès distant/require-encryption false dconf write/org/gnome/desktop/remote- access/vnc-password\"\ '$ (echo -n $ mot_de_passe | base64) \' \" dconf dump /org/gnome/desktop/remote-access/[.____. Services de surveillance du son Lightdm redémarrer
La citation est importante pour n'importe quel paramètre de chaîne (ticks simples entre guillemets). Pour que dconf puisse l'écrire, il faut accéder à XWindows. C'est pourquoi la partie exportation DISPLAY est nécessaire. Je pense que vous devez toujours être connecté au bureau sur la machine Ubuntu pour vous connecter à VNC après cela. La commande dump est juste là pour confirmer que tous les paramètres ont bien pris, vous n'avez pas vraiment besoin de ça.
Vous pouvez éventuellement le faire si vous souhaitez conserver l'affichage tout le temps:
dconf écrire/org/gnome/desktop/screensaver/lock-enabled false dconf écrire/org/gnome/desktop/screensaver/ubuntu-lock-on-suspendre false dconf write/org/gnome/desktop/session/idle-delay "uint32 0"
Xnest
avec le forword de X11 pour démarrer une session à distance et la transférer sur votre ordinateur actuel. (Je le fais de temps en temps avec mon pi) page de manuelJ'utilise Xnest
comme ceci:
Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
basé sur @Khurshid Alam répondre, je présente l'extrait suivant:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
C'est une commande qui ne nécessite aucune interaction
Il crée le tunnel SSH avec la redirection de port, démarre x11vnc
de manière relativement sûre, puis lance et connecte le visualiseur VNC.
Il nécessite x11vnc sur l'hôte cible, mais aucune configuration supplémentaire
Comment démarrer le serveur Vino à distance sans transférer X (ligne de commande uniquement)
Connectez-vous sur l'ordinateur distant en tant qu'utilisateur qui partagera son poste de travail et transmettez le port 5900 au même port sur localhost. Avec PuTTY, la redirection est définie dans Connection/SSH/Tunnels. Avec une ligne de commande, utilisez:
ssh -L 5900:localhost:5900 user@remote-computer
Installez vino-server
s'il n'est pas déjà installé. Par exemple:
Sudo apt install vino
Activer le partage de bureau (correspondant au numéro d'affichage sur les 1ère et 2ème lignes):
echo $DISPLAY
export DISPLAY=:0
dbus-launch --exit-with-session gsettings set org.gnome.Vino enabled true
dbus-launch --exit-with-session gsettings set org.gnome.Vino Prompt-enabled false
dbus-launch --exit-with-session gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server
Démarrez un visualiseur VNC et connectez-vous à localhost
pour l'adresse du serveur VNC.