Habilitar VNC remoto a partir da linha de comando?

66

Eu tenho um computador executando o Ubuntu 10.04 e executando o Vino , o servidor VNC padrão.

Eu tenho uma segunda caixa do Windows que está executando um cliente VNC, mas não possui nenhum recurso X11. Estou ssh'd no host do Ubuntu a partir do host do Windows, mas esqueci de habilitar o acesso VNC no host do Ubuntu.

No host do Ubuntu, existe uma maneira de ativar as conexões VNC a partir da linha de comando do Ubuntu?

Atualizar:

Como o @koanhead diz abaixo, não existe uma página de manual para vino(por exemplo, man -k vinoe info vinonão retorne nada) e vino --helpnão mostra nenhuma ajuda).

Stefan Lasiewski
fonte

Respostas:

25

Apenas correndo

/usr/lib/vino/vino-server

deve fazer o trabalho.

Depois de ter acesso ao seu servidor, recomendo que você o adicione aos aplicativos iniciados automaticamente para que ele seja sempre iniciado.

Você provavelmente vai gostar de alterar algumas configurações com:

vino-preferences

tenha muito cuidado ao executar o vino-preferência em uma máquina remota. Se você desmarcar a opção "Permitir que outros usuários controlem sua área de trabalho", não poderá verificar novamente.

ou para editar:

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

Aqui está um arquivo de exemplo:

<?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>

Cuidado, a senha é codificada em base64. Para este arquivo, a senha é qwerty. Eu vejo em alguns fóruns que as pessoas mudaram com sucesso, mas eu tive problemas com isso.

Aqui está um codificador base64 online:

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

Guillaume Coté
fonte
6
Eu recebi o seguinte erro ao executar /usr/lib/vino/vino-server:No protocol specified ** (vino-server:2040): WARNING **: Could not open X display
Tuan Anh Hoang-Vu
@hvtuananh Você tem uma tela que pode compartilhar? Você tem a variável evd DISPLAY definida de acordo? Minha resposta pressupõe que você já tenha uma exibição iniciada por padrão, mas não possui uma string e use a linha de comando para disponibilizá-la.
Guillaume Coté
11
Isso não funciona (pelo menos) em 13.10. Veja a resposta por ouzmoutous abaixo.
Emil Styrke
Se alguém tiver problemas, observe o bug: bugs.launchpad.net/ubuntu/+source/vino/+bug/1607663 .
Rmano 5/04
3
vino-preferences: command not found
Endolith
28

Resposta curta:

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

como a resposta aceita menciona, se o vino não for iniciado na máquina remota, use

/usr/lib/vino/vino-server

Resposta longa e mais informações:

Um subconjunto das configurações do servidor de acesso remoto interno atual (vino) pode ser visto, como mencionado, nas preferências do vino. Uma lista completa de sinalizadores do gconf pode ser vista com o gconf-editorcomando, listado em / desktop / gnome / remote_access. Você pode ver também as outras chaves remote_access com este comando (ou uma variação nele):

gconftool-2 -a /desktop/gnome/remote_access

(Por qualquer motivo, -Rtambém funcionará.)

Você também pode obter a documentação da chave de esquema por meio do --long-docsarg.

Por exemplo, para a chave 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.

Então, por exemplo, veja como alterar a porta padrão via linha de comando:

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

O gconftool fornecerá as chaves em um determinado diretório. Aqui está a seção '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

Aqui está como listar todos os documentos do esquema em / desk / gnome / remote / access (via linha de comando / 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
belacqua
fonte
/usr/lib/vino/vino-servernão funciona com o SSH, diz #Cannot open display:
endolith
24

Eu também queria habilitar o vino com a linha de comando sem entrar nas preferências do vino.

Quando comecei /usr/lib/vino/vino-server, ele diz que não tinha o serviço de compartilhamento de área de trabalho habilitado.

Com o Unity gconftoolnão é mais utilizável. Temos que fazer isso via gsettings.

Então, primeiro, ative o vino:

gsettings set org.gnome.Vino prompt-enabled true

Então inicie o vino:

/usr/lib/vino/vino-server

Agora você pode acessar remotamente ao seu computador.

Se você deseja ver todas as configurações disponíveis para o Vino:

gsettings list-keys org.gnome.Vino
ouzmoutous
fonte
2
Para fazer isso através do SSH ou de um terminal em modo de texto em que a variável de ambiente DISPLAY não esteja configurada, você precisa acrescentar DISPLAY =: 0 ao comando set, caso contrário, você "falhará ao confirmar as alterações no dconf".
Emil Styrke
Então, além do acima, eu precisava export DBUS_SESSION_BUS_ADDRESS=.... Para obter esse valor de variável, copiei do ambiente de um processo em execução ( pgrep -u myUserName -lpara obter a lista de processos, escolha um número e, em seguida tr '\0' '\n' < /proc/NUMBER/environ | grep DBUS). Em seguida, exporte DBUS_SESSION_BUS_ADDRESS com o valor retornado. Então o comando foi executado.
precisa saber é o seguinte
primeiro comando me dá: Não
existe
19

No Ubuntu 14.04, achei a seguinte variação funcionada para mim:

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

Se isso não funcionar, sua sessão X pode estar sendo executada em algo diferente de :0, portanto, uma rápida ps aux | grep Xdeve mostrar uma :1ou:2

Taeram
fonte
11
Você deve começar com o export DISPLAY=:0que os gsettings comandos irá falhar sem: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY.
vaab
Melhor resposta de longe. Mas como você faz o Vino iniciar automaticamente na reinicialização?
Pferrel
com isso, a porta vnc está aberta, mas meu cliente vnc pára para sempre. qual pode ser o probem?
David Portabella #
se o seu cliente VNC não se conectar à área de trabalho, provavelmente é porque a criptografia permanece ativada. - Cada vez que você efetua logoff e logon novamente, desabilita a criptografia novamente. - Você pode colocar esses comandos em um shell e invocá-lo quando a área de trabalho for iniciada. Procure as "Preferências do aplicativo de inicialização" na área de trabalho do Ubuntu.
Jaime1
13

Por que, pelo amor de tudo o que é bom neste mundo difícil, não existe uma entrada de homem para o vino ou vino-server ou para qualquer um dos comandos listados na dpkg -L vinosaída de? Nesse caso, por que algum pacote deve ser instalado em um sistema Ubuntu, que omite uma página de manual pelo menos para os comandos relevantes? Ok, discursar. A melhor resposta que encontrei até agora está aqui: http://ubuntuforums.org/archive/index.php/t-266981.html

Eu realmente espero que isso ajude, e espero que no futuro a comunidade Ubuntu documente todos esses comandos órfãos. "Facilidade de uso" não significa abandonar a linha de comando e certamente não significa abandonar a documentação facilmente acessível. </grumble>

koanhead
fonte
Tente executar / usr / lib / vino / vino-server. Para pouca ajuda e documentação disponíveis, use o vino-server --help-all.
precisa saber é o seguinte
4
Vincular a outra fonte é ruim, essa fonte poderá ficar offline no futuro e sua resposta não será mais válida.
precisa saber é o seguinte
Um ponto extra para o discurso retórico.
Marnix A. van Ammers
Está em / usr / lib, portanto, não é um comando que o usuário normalmente executaria, portanto não precisa de uma página de manual ... pelo menos esse é o raciocínio. FWIW, eu concordo com você.
Matthias Urlichs
9

Isso não parece funcionar remotamente via ssh devido a erros na tela e assim por diante. Aqui está o que eu fiz:

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

Principalmente funciona agora!

Will Bradley
fonte
Sim, finalmente! Sem export DISPLAY=:0.0, a área de trabalho "remota" que eu estava recebendo era, na verdade, minha área de trabalho local (eu uso ssh -X). Além disso, é necessário "Permitir outros usuários" via vino-preferences(ou os comandos do shell sugeridos em outras respostas) antes de executar /usr/lib/vino/vino-server. Nota: Provavelmente, qualquer cliente VNC trabalha com isso depois de configurado corretamente, mas vinagreparecia fornecer a interface do usuário mais sensata.
Nobar
5

Consegui definir uma nova instalação do Ubuntu 16.04 a partir de uma conexão ssh remota com o seguinte script:

#! / bin / bash
exportar DISPLAY =: 0
leia -e -p "Senha do VNC: senha" -i "ubuntu"
dconf write / org / gnome / desktop / acesso remoto / ativado true
dconf write / org / gnome / desktop / acesso remoto / ativado por prompt false
dconf write / org / gnome / desktop / acesso remoto / métodos de autenticação "['vnc']"
dconf write / org / gnome / desktop / acesso remoto / criptografia requerida false
dconf write / org / gnome / desktop / acesso remoto / vnc-password \ "\ '$ (eco -n $ senha | base64) \' \"
dconf dump / org / gnome / desktop / acesso remoto /
serviço sudo lightdm restart

A citação é importante para qualquer uma das configurações de string (marcações simples entre aspas). Para que o dconf possa escrevê-lo, é necessário acessar o XWindows, e é por isso que a parte DISPLAY de exportação é necessária. Eu acho que você ainda precisa estar logado na área de trabalho na máquina Ubuntu real para se conectar ao VNC depois disso. O comando dump está lá apenas para confirmar que todas as configurações foram mantidas, você realmente não precisa disso.

Opcionalmente, convém fazer isso se quiser manter a exibição sempre ativa:

dconf write / org / gnome / desktop / screensaver / ativado por bloqueio false
dconf write / org / gnome / desktop / protetor de tela / ubuntu-lock-on-suspend false
dconf write / org / gnome / desktop / session / idle-delay "uint32 0"
Integrador
fonte
1

Para quem usa o Linux Mint 15, consegui tudo isso para funcionar no meu MintBox2, fazendo o seguinte. Agora posso executar o MintBox 2 totalmente sem cabeça com: ssh + vino + VNC apertado.

Digite putty via conexão ssh com a máquina 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]

Agora, se você gosta (não é necessário) em um terminal LinuxMint (ou seja, não em massa), digite:

echo $DISPLAY

=> Você obtém uma saída de: 1 [isto é, me causou muitos problemas para descobrir, isto é, não é 0: 0 !!!!!!!!!!]

Agora, volte para o putty e digite:

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

=> Agora ele carrega e você pode usar a janela 7 Apertado VNC Viewer para acessar o Linux Mint etc.

Eu espero que isto ajude alguém lá fora...

CMP
fonte
1

Eu tive o mesmo problema com o xubuntu após a atualização 18.04. Primeiro instale o vino. O meu foi removido na atualização sem aviso prévio. Além disso, mesmo após a instalação do vino, o comando vino-preferências não funciona.

Aqui está uma solução fácil:

  • Instale o dconf-editor

    sudo apt install dconf-editor 
    
  • abra-o e vá para /org/gnome/desktop/remoteacessar e turn off encryption.

Existem também várias outras opções remotas que você pode definir no dconf-editor. No entanto, até você instalar o vino, o acesso remoto não aparece no dconf-editor.

Espero que alguém possa explicar o que aconteceu com as preferências do vino.

Carol McAnulty
fonte
-1
gsettings reset-recursively org.gnome.Vino
Abdennour TOUMI
fonte
5
Seria útil se você pudesse editar sua resposta para explicar o que isso faz e como responde à pergunta.
David Edwards