Activer le VNC distant à partir de la ligne de commande?


66

J'ai un ordinateur sous Ubuntu 10.04 et Vino , le serveur VNC par défaut.

J'ai une deuxième machine Windows qui exécute un client VNC, mais ne dispose pas de capacités X11. Je suis ssh'd dans l'hôte Ubuntu à partir de l'hôte Windows, mais j'ai oublié d'activer l'accès VNC sur l'hôte Ubuntu.

Sur l'hôte Ubuntu, puis-je activer les connexions VNC à partir de la ligne de commande Ubuntu?

Mise à jour:

Comme @koanhead dit ci-dessous, il n'y a pas de page de manuel pour vino(par exemple man -k vino, info vinorien ne retourne, et vino --helpne montre aucune aide).

Réponses:


25

Juste courir

/usr/lib/vino/vino-server

devrait faire le travail.

Une fois que vous avez accès à votre serveur, je vous recommande de l'ajouter aux applications à démarrage automatique afin qu'il soit toujours démarré.

Vous aimerez probablement changer certains paramètres avec:

vino-preferences

soyez très prudent lorsque vous exécutez la préférence vino sur une machine distante. Si vous décochez la case "Autoriser les autres utilisateurs à contrôler votre bureau", vous ne pourrez pas le vérifier.

ou pour éditer:

~/.gconf/desktop/gnome/remote_access/%gconf.xml

Voici un exemple de fichier:

<?xml version="1.0"?>
<gconf>
    <entry name="vnc_password" mtime="1289267042" type="string">
        <stringvalue>cXdlcnR5</stringvalue>
    </entry>
    <entry name="view_only" mtime="1289262982" type="bool" value="false"/>
    <entry name="prompt_enabled" mtime="1254965869" type="bool" value="false"/>
    <entry name="authentication_methods" mtime="1289267034" type="list" ltype="string">
        <li type="string">
            <stringvalue>vnc</stringvalue>
        </li>
    </entry>
    <entry name="enabled" mtime="1289263574" type="bool" value="true"/>
</gconf>

Attention, le mot de passe est codé en base64. Pour ce fichier, le mot de passe est qwerty. Je vois sur certains forums que les gens ont réussi à le changer, mais cela me posait problème.

Voici un encodeur base64 en ligne:

http://www.motobit.com/util/base64-decoder-encoder.asp


6
J'ai eu l'erreur suivante lors de l'exécution /usr/lib/vino/vino-server:No protocol specified ** (vino-server:2040): WARNING **: Could not open X display
Tuan Anh Hoang-Vu

@hvtuananh Avez-vous un écran que vous pouvez partager? Avez-vous paramétré la variable evd DISPLAY en conséquence? Ma réponse suppose que vous avez déjà un affichage commençant par défaut, mais vous n'avez pas de chaîne et utilisez la ligne de commande pour le rendre disponible.
Guillaume Coté

1
Cela ne fonctionne pas dans (au moins) 13.10. Voir la réponse de ouzmoutous ci-dessous à la place.
Emil Styrke

Si quelqu'un a des problèmes, notez le bogue: bugs.launchpad.net/ubuntu/+source/vino/+bug/1607663 .
Rmano

3
vino-preferences: command not found
endolith

28

Réponse courte:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/enabled true

comme le mentionne la réponse acceptée, si vino n'est pas démarré sur la machine distante, utilisez

/usr/lib/vino/vino-server

Réponse longue et plus d'infos:

Comme indiqué, un sous-ensemble des paramètres du serveur d'accès à distance intégré (vino) intégré peut être visualisé à partir des préférences de vino. Une liste complète des drapeaux gconf peut être vue avec la gconf-editorcommande, listée sous / desktop / gnome / remote_access. Vous pouvez également voir les autres clés remote_access avec cette commande (ou une variante de celle-ci):

gconftool-2 -a /desktop/gnome/remote_access

(Pour une raison quelconque, -Rfonctionnera également.)

Vous pouvez également obtenir la documentation de la clé de schéma via --long-docsarg.

Par exemple, pour la clé alternative_port:

gconftool-2 --long-docs /desktop/gnome/remote_access/alternative_port

       The port which the server will listen to if the
       'use_alternative_port' key is set to true.
       Valid values are in the range from 5000 to 50000.

Ainsi, par exemple, voici comment modifier le port par défaut via une ligne de commande:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/use_alternative_port true
gconftool-2 --set --type=int /desktop/gnome/remote_access/alternative_port 5999

gconftool vous donnera les clés sous un répertoire donné. Voici la section 'remote_access':

gconftool-2 -a /desktop/gnome/remote_access
 use_upnp = false
 vnc_password = 
 authentication_methods = [vnc]
 network_interface = 
 require_encryption = false
 disable_background = false
 enabled = true
 use_alternative_port = false
 mailto = 
 disable_xdamage = false
 lock_screen_on_disconnect = false
 icon_visibility = always
 view_only = false
 prompt_enabled = true
 alternative_port = 5900

Voici comment répertorier tous les documents de schéma sous / desk / gnome / remote / access (via la ligne de commande / bin / bash):

for key in ` gconftool-2 -a /desktop/gnome/remote_access | awk '{print $1}'  ` ; do echo $key ; gconftool-2 --long-docs /desktop/gnome/remote_access/$key ; done

/usr/lib/vino/vino-serverça ne marche pas chez SSH, ça ditCannot open display:
endolith

24

Je voulais aussi activer vino avec la ligne de commande sans entrer dans les préférences de vino.

Lorsque j'ai commencé /usr/lib/vino/vino-server, il est indiqué que le service de partage de bureau n'était pas activé.

Avec Unity gconftooln'est plus utilisable. Nous devons le faire via gsettings.

Donc, premièrement, activez vino:

gsettings set org.gnome.Vino prompt-enabled true

Puis commencez vino:

/usr/lib/vino/vino-server

Vous pouvez maintenant accéder à distance à votre ordinateur.

Si vous voulez voir toutes les configurations disponibles pour Vino:

gsettings list-keys org.gnome.Vino

2
Pour ce faire sur SSH ou à partir d'un terminal en mode texte où la variable d'environnement DISPLAY n'est pas définie, vous devez ajouter DISPLAY =: 0 à la commande set, sinon vous obtiendrez "échec de la validation des modifications dans dconf".
Emil Styrke

Donc, en plus de ce qui précède, je devais le faire export DBUS_SESSION_BUS_ADDRESS=.... Pour obtenir cette valeur de variable, je l'ai copiée à partir de l'environnement d'un processus en cours ( pgrep -u myUserName -lpour obtenir la liste des processus, choisissez un nombre, puis tr '\0' '\n' < /proc/NUMBER/environ | grep DBUS). Puis exportez DBUS_SESSION_BUS_ADDRESS avec la valeur renvoyée. Alors la commande a couru.
RJFalconer

La première commande me donne: aucune clé «activée»
stiv

19

Sur Ubuntu 14.04, j'ai trouvé la variante suivante qui fonctionnait pour moi:

export DISPLAY=:0
gsettings set org.gnome.Vino enabled true
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

Si cela ne fonctionne pas, votre session X s'exécutera peut-être sur autre chose :0. Un rapide ps aux | grep Xdevrait donc indiquer un :1ou:2


1
Vous devriez commencer par export DISPLAY=:0les commandes gsettings échouera sans: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY.
vaab

Meilleure réponse de loin. Mais comment faire en sorte que Vino démarre automatiquement au redémarrage?
pferrel

avec cela, le port vnc est ouvert, mais mon client vnc s'arrête pour toujours. que peut être le probem?
David Portabella

si votre client VNC ne se connecte pas au bureau, c'est probablement parce que le cryptage reste activé. - Chaque fois que vous vous déconnectez et que vous vous reconnectez, vous devez désactiver le cryptage. - Vous pouvez mettre ces commandes dans un shell et l'invoquer au démarrage du bureau. Recherchez les "préférences de l'application de démarrage" sur votre bureau Ubuntu.
Jaime

13

Pourquoi, pour l'amour de tout ce qui est bon dans ce monde difficile, n'y a-t-il pas d'entrée homme pour vino ou vino-server ou pour l'une des commandes répertoriées dans dpkg -L vinola sortie de? D'ailleurs, pourquoi un seul paquet devrait-il être installé sur un système Ubuntu, ce qui omet au moins une page de manuel pour les commandes pertinentes? Ok, fulminer. La meilleure réponse que j'ai trouvée jusqu'à présent est la suivante: http://ubuntuforums.org/archive/index.php/t-266981.html

J'espère vraiment que cela aidera et que la communauté Ubuntu documente à l'avenir toutes ces commandes orphelines. "Facilité d'utilisation" ne signifie pas l'abandon de la ligne de commande, ni certainement l'abandon d'une documentation facilement accessible. </ grumble>


Essayez d’exécuter / usr / lib / vino / vino-server. Pour le peu d’aide et de documentation disponibles, utilisez vino-server --help-all.
koanhead

4
La liaison à une autre source est mauvaise, cette source pourrait se déconnecter à l'avenir et votre réponse ne serait plus valide.
Phil Hannent

Un point supplémentaire pour le coup de gueule.
Marnix A. van Ammers

C'est dans / usr / lib, donc pas une commande normalement exécutée par l'utilisateur, donc pas besoin de page de manuel… du moins c'est le raisonnement. FWIW, je suis d'accord avec toi.
Matthias Urlichs

9

Cela ne semble pas fonctionner à distance via ssh à cause d'erreurs d'affichage, etc. Voici ce que j'ai fait:

export DISPLAY=:0.0 && /usr/lib/vino/vino-server

Fonctionne principalement maintenant!


Oui enfin! Sans cela export DISPLAY=:0.0, le bureau "distant" que je devenais était en fait mon bureau local (que j'utilise ssh -X). En outre, il est nécessaire de "Autoriser les autres utilisateurs" via vino-preferences(ou les commandes shell suggérées dans d'autres réponses) avant l' exécution /usr/lib/vino/vino-server. Remarque: il est probable que tout client VNC fonctionne avec cela une fois qu'il est correctement configuré, mais vinagresemble fournir l'interface utilisateur la plus judicieuse.
novembre

5

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:

dconf write / org / gnome / desktop / screensaver / verrouillé-activé false
dconf write / org / gnome / bureau / économiseur d'écran / Ubuntu-lock-on-suspendre false
dconf write / org / gnome / desktop / session / idle-delay "uint32 0"

1

Pour tous ceux qui utilisent Linux Mint 15, je dois que tout cela fonctionne sur ma MintBox2 en procédant comme suit. Je peux maintenant utiliser la MintBox 2 sans tête avec: ssh + vino + Tight VNC.

Tapez putty via la connexion SSH à la machine LinuxMint MintBox2:

sudo su
[enter your root password]
echo $DISPLAY
export DISPLAY=:0.0
startx &   }This loads up LinuxMint on screen as "root" user
[press the return key again to get back to BASH prompt]

Maintenant, si vous aimez (ce n'est pas nécessaire) sur un terminal LinuxMint (c'est-à-dire pas sur du mastic), tapez:

echo $DISPLAY

=> Vous obtenez une sortie de: 1 [c'est-à-dire que cela m'a causé beaucoup de problèmes pour comprendre c'est-à-dire que ce n'est pas 0: 0 !!!!!!!!!!]

Maintenant, retournez à mastic et tapez:

echo $DISPLAY
export DISPLAY=:1
/usr/lib/vino/vino-server

=> Il est maintenant chargé et vous pouvez utiliser la fenêtre 7 Tight VNC Viewer pour accéder à Linux Mint, etc.

J'espère que cela aide quelqu'un là-bas ...


1

J'ai eu le même problème avec xubuntu après la mise à jour de 18.04. Installez d'abord vino. Le mien a été retiré lors de la mise à niveau sans préavis. Même après l'installation de vino, la commande vino-preferences ne fonctionne pas.

Voici une solution de contournement facile:

  • Installer dconf-editor

    sudo apt install dconf-editor 
    
  • puis ouvrez-le et allez à /org/gnome/desktop/remoteaccéder et turn off encryption.

Il existe également plusieurs autres options à distance que vous pouvez définir dans dconf-editor. Cependant, tant que vous n'avez pas installé vino, l'accès à distance n'apparaît pas dans dconf-editor.

J'espère que quelqu'un pourra expliquer ce qui est arrivé aux préférences de vino.


-1
gsettings reset-recursively org.gnome.Vino

5
Il serait utile que vous modifiiez votre réponse pour expliquer en quoi cela consiste et comment cela répond à la question.
David Edwards
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.