Ceci peut être réalisé avec vino vnc server & remmina (les deux sont fournis par défaut avec ubuntu; sinon, installez-le en cours d'exécution 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:
Sous l' basiconglet, mettez l'adresse du serveur dans le serverchamp.
Sur l'onglet ssh, cliquez sur enable ssh tunnel. Sous ssh authentication, cela pourrait être passwordou 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.
Méthode 2:
x11vncest un simple serveur VNC et vous n’aurez pas à vous soucier des paramètres de Gnome ou de 500 pare-feu, mais installez-le x11vncsur tous vos ordinateurs (avec marionnette ou tout ce que vous utilisez pour le contrôle en masse).
Ensuite, à partir de votre ordinateur local, lancez:
Évidemment, permuter user@hostentre le nom d'utilisateur et le nom d'hôte / IP de l'ordinateur distant.
Et puis 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, il vaut mieux laisser le -display :0segment dans la commande SSH désactivé . x11vnctentera alors automatiquement de trouver le bon affichage.
Si vous utilisez vncviewer avec une connexion ssh lente, votre commande devrait ressembler à vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(sous Debian / Ubuntu, le visualiseur provient de tightvnc) ou vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(sous Red Hat / Fedora, le visualiseur est issu de tigervnc), où le niveau de qualité sur Debian et Redhat est égal à. entre 0 et 9, où 9 est le meilleur, mais nécessite une connexion rapide.
erik
@erik Merci d'avoir expliqué comment l'utiliser avec vncviewerune connexion lente. Personnellement, je vais probablement régler QualityLevel=4 or 5parce que 0 qualitylevel(ce qui est 256 colors, je pense) est trop ennuyeux pour moi.
Khurshid Alam le
1
Votre "Méthode 2" est idéale pour un accès rapide à l’affichage physique à distance, sans aucun réglage permanent spécial. J'avais besoin d'ajouter le paramètre -auth comme expliqué dans le message d'erreur lorsque j'exécutais la commande mais que cela fonctionnait parfaitement. Merci!
Pierre
@gerky method 3 serait NoMachine, est actuellement le plus rapide et gratuit (malgré pas Open Source), et travaille aussi sur android
Aquarius Power
1
Pour la méthode 2, je devais l'utiliser -auth guesset l'exécuter en tant que root. Très utile, merci!
Bob Carlson
9
Vue d'ensemble de la solution
En supposant que vous ayez déjà configuré et OpenSSH Serversur 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.
1a. Activer localement le contrôle à distance de la machine hôte
Procédez comme suit sur la machine hôte:
vino-preferences
vino-preferences aussi dans Dash sous Desktop Sharing
Cocher Allow other users to view your desktop
Cocher Allow other users to control your desktop
Cocher Require the user to enter this password
Entrez un mot de passe difficile à deviner
proche
1b. Activer à distance le contrôle à distance de la machine hôte
Procédez comme suit sur la machine client, en remplaçant 123.123.12.3par l'adresse IP de votre machine hôte:
ssh -Y 123.123.12.3
-Y, active le transfert X11 de confiance. Les redirections X11 de confiance ne sont pas soumises aux contrôles d'extension X11 SECURITY.
vino-preferences
vino-preferences aussi dans Dash sous Desktop Sharing
Cocher Allow other users to view your desktop
Cocher Allow other users to control your desktop
Cocher Require the user to enter this password
Entrez un mot de passe difficile à deviner
proche
Créer un profil de client de bureau à distance sur votre ordinateur client
Procédez comme suit sur la machine cliente:
remmina
remmina aussi dans Dash sous Remmina Remote Desktop Client
Ctrl+ Nou Connexion> Nouveau
Entrez votre adresse IP [123.123.12.3] où il est indiqué Server
Passer à l' SSHonglet
Cocher Enable SSH Tunnel
Pointez votre client de bureau sur votre port SSH non standard
Définissez votre SSH Authentication<username>mode et
Relier
Voir et contrôler la machine hôte
Sur la machine cliente, lorsque <username>le mot de passe vous est demandé , 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 devriez maintenant afficher et contrôler le bureau de la machine hôte à partir de votre ordinateur client via un tunnel SSH.
Cela semble assez complet, mais où se trouve le port personnalisé 12345 défini sur l'hôte?
John T
Je suppose que vous avez besoin d'une commande ssh exécutée à partir du client quelque part, quelque chose comme: ssh -L 12345: localhost: 5900 user @ server_ip avant d'utiliser le client distant comme décrit.
John T
3
J'ai pu configurer une nouvelle installation Ubuntu 16.04 à partir d'une connexion ssh distante avec le script suivant:
#! / bin / bash
export AFFICHER =: 0
read -e -p "Mot de passe VNC: mot de passe" -i "ubuntu"
dconf write / org / gnome / desktop / accès à distance / enabled true
dconf write / org / gnome / desktop / accès à distance / prompt-enabled false
dconf write / org / gnome / desktop / accès à distance / authentication-methods "['vnc']"
dconf write / org / gnome / desktop / accès à distance / require-encryption false
dconf write / org / gnome / desktop / accès-distant / mot-de-passe-vnc \ "\ '$ (echo -n $ mot de passe | base64) \' \"
dconf dump / org / gnome / ordinateur de bureau / accès à distance /
sudo service lightdm restart
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 avoir accès à 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:
Vous pouvez utiliser ssh pour démarrer une session vnc
Utilisez-le Xnestavec X11 forwording pour démarrer une session à distance et la transférer sur votre ordinateur actuel. (Je le fais de temps en temps avec ma pi) page de manuel
Comment démarrer le serveur Vino à distance sans transférer X (ligne de commande uniquement)
Connectez-vous à 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-serversi ce 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à l'adresse du serveur VNC.
J'ai le suivant. On dirait que tout cela suppose que vous êtes déjà connecté à une console graphique? No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
algue
0
basé sur @Khurshid Alam répondre, je présente l'extrait suivant:
Ouvrez les "préférences vino" depuis le terminal ou "Partage du bureau" à l'aide de dash.
Dans le PC client (à partir duquel vous souhaitez contrôler l'interface utilisateur du serveur).
Conservez les paramètres comme indiqué dans les images ci-dessous (avec les modifications à la place du nom d'utilisateur et de l'adresse IP).
Pièges.
Lorsque j'ai essayé de définir les préférences vino sur le serveur à partir d'un PC distant à l'aide de SSH, la situation a été modifiée, mais la connexion ne s'est pas établie. Je devais le faire directement sur la machine du serveur (pas à distance). Je ne connais pas la raison de ce comportement.
Réponses:
Méthode 1:
Ceci peut être réalisé avec vino vnc server & remmina (les deux sont fournis par défaut avec ubuntu; sinon, installez-le en cours d'exécution
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 pasvino-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:Il va démarrer le serveur vino.
Déconnexion du serveur:
Ensuite, ouvrez remmina . Choisissez
vnc
sous protocole.Sous l'
basic
onglet, mettez l'adresse du serveur dans leserver
champ.Sur l'onglet ssh, cliquez sur
enable ssh tunnel
. Sousssh authentication
, cela pourrait êtrepassword
oupublic 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.
Méthode 2:
x11vnc
est un simple serveur VNC et vous n’aurez pas à vous soucier des paramètres de Gnome ou de 500 pare-feu, mais installez-lex11vnc
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:
Évidemment, permuter
user@host
entre le nom d'utilisateur et le nom d'hôte / IP de l'ordinateur distant.Et puis 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, il vaut mieux laisser le
-display :0
segment dans la commande SSH désactivé .x11vnc
tentera alors automatiquement de trouver le bon affichage.Source: askubuntu
la source
vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0
(sous Debian / Ubuntu, le visualiseur provient de tightvnc) ouvncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0
(sous Red Hat / Fedora, le visualiseur est issu de tigervnc), où le niveau de qualité sur Debian et Redhat est égal à. entre 0 et 9, où 9 est le meilleur, mais nécessite une connexion rapide.vncviewer
une connexion lente. Personnellement, je vais probablement réglerQualityLevel=4 or 5
parce que0 qualitylevel
(ce qui est256 colors
, je pense) est trop ennuyeux pour moi.-auth guess
et l'exécuter en tant que root. Très utile, merci!Vue d'ensemble de la solution
En supposant que vous ayez déjà configuré et
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.
1a. Activer localement le contrôle à distance de la machine hôte
Procédez comme suit sur la machine hôte:
vino-preferences
aussi dans Dash sousDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
1b. Activer à distance le contrôle à distance de la machine hôte
Procédez comme suit sur la machine client, en remplaçant
123.123.12.3
par l'adresse IP de votre machine hôte:vino-preferences
aussi dans Dash sousDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Créer un profil de client de bureau à distance sur votre ordinateur client
Procédez comme suit sur la machine cliente:
Remmina Remote Desktop Client
Ctrl+ Nou Connexion> Nouveau
Server
SSH
ongletEnable SSH Tunnel
SSH Authentication
<username>
mode etVoir et contrôler la machine hôte
Sur la machine cliente, lorsque
<username>
le mot de passe vous est demandé , 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 devriez maintenant afficher et contrôler le bureau de la machine hôte à partir de votre ordinateur client via un tunnel SSH.
la source
J'ai pu configurer une nouvelle installation Ubuntu 16.04 à partir d'une connexion ssh distante avec le script suivant:
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 avoir accès à 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:
la source
Xnest
avec X11 forwording pour démarrer une session à distance et la transférer sur votre ordinateur actuel. (Je le fais de temps en temps avec ma pi) page de manuelJ'utilise
Xnest
comme si:Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
la source
Comment démarrer le serveur Vino à distance sans transférer X (ligne de commande uniquement)
Connectez-vous à 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:
Installez
vino-server
si ce n'est pas déjà installé. Par exemple:Activer le partage de bureau (correspondant au numéro d'affichage sur les 1ère et 2ème lignes):
Démarrez un visualiseur VNC et connectez-vous
localhost
à l'adresse du serveur VNC.la source
No protocol specified Failed to connect to Mir: Failed to connect to server socket: No such file or directory Unable to init server: Could not connect: Connection refused Cannot open display: Run 'vino-server --help' to see a full list of available command line options
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 raisonnablement sûre et lance et connecte le visualiseur VNC.Il nécessite x11vnc sur l'hôte cible, mais aucune configuration supplémentaire
la source
Dans le PC serveur.
Dans le PC client (à partir duquel vous souhaitez contrôler l'interface utilisateur du serveur).
Pièges.
la source