Como configurar o compartilhamento remoto da área de trabalho através do SSH?

42

Existe uma maneira de visualizar (e controlar) uma área de trabalho remota através do SSH? Eu não terei acesso físico à máquina host remota.

    
por gerky 04.06.2013 / 18:21

6 respostas

42

Método 1:

Isto pode ser conseguido com vino vnc server & amp; remmina (ambos vêm por omissão com o Ubuntu, se não instalá-lo executando sudo apt-get install remmina ). Em seguida, execute os seguintes comandos do computador local no terminal:

  1. ssh -Y [email protected] . Use o encaminhamento confiável do X11, caso contrário não funcionará

  2. vino-preferences . Abrirá as preferências de vino.

  3. Cliquetambémemconfigurenetworkautomaticallytoacceptconnection.Masnãodigitenenhumasenha,suabase64codificada.Entãocliqueemfechar.Entãocorra:

    sudo-sexportDISPLAY=:0.0xhost+/usr/lib/vino/vino-server&

    Eleiniciaráoservidorvino.

  4. Logoutdoservidor:

    xhost-PressCTRL+Ctwiceexitexit
  5. Emseguida,abraremmina.Escolhavncsobprotocolo.

    Embasic,coloqueoendereçodoservidornocamposerver.

    Noseparadorssh,cliqueemenablesshtunnel.Emsshauthentication,podeserpasswordoupublickey:

    Clique em salvar. Em seguida, clique duas vezes no nome da conexão (home-desktop como mostrado na figura) para começar a navegar na área de trabalho remota.

Método 2:

x11vnc é um servidor VNC simples e você não terá que mexer nas configurações do Gnome ou em 500 firewalls, basta instalar x11vnc em todos os seus computadores (com fantoches ou o que você estiver usando para controle de massa) .

Em seguida, a partir do computador local, execute:

ssh [email protected] -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"

Obviamente, trocando [email protected] pelo nome de usuário e hostname / IP do computador remoto.

Em seguida, use um cliente VNC de sua escolha para se conectar a localhost:5900 . O comando SSH inicia um servidor vnc no computador remoto e, em seguida, faz o encapsulamento dessa porta por SSH. Você não precisa abrir nenhuma porta (contanto que você já possa SSH).

Se os seus computadores tiverem configurações de exibição engraçadas, talvez seja melhor deixar o segmento -display :0 no comando SSH. x11vnc tentará automaticamente encontrar a exibição correta.

Fonte: askubuntu

    
por Khurshid Alam 06.06.2013 / 10:25
6

Visão geral da solução

Supondo que você já tenha configurado um OpenSSH Server em sua máquina host, primeiro ative o controle da área de trabalho na sua máquina host. Se você puder ativar o controle da área de trabalho em sua máquina host localmente, vá para 1a. Se você precisar primeiro ativar o controle de área de trabalho em sua máquina host remotamente, vá para 1b.

Em seguida, crie um perfil do Cliente de Área de Trabalho Remota em sua máquina cliente para conectar-se à máquina host por meio de um túnel SSH e, finalmente, visualizar e controlar a área de trabalho da máquina host por meio de um túnel SSH.

1a. Ativar localmente o controle remoto da máquina host

Faça o seguinte na máquina host:

vino-preferences
  • vino-preferences também no Dash sob Desktop Sharing

  1. MarqueAllowotheruserstoviewyourdesktop
  2. MarqueAllowotheruserstocontrolyourdesktop
  3. MarqueRequiretheusertoenterthispassword
  4. Insiraumafrase-senhadifícildeadivinhar
  5. Fechar

1b.AtivarRemotamenteoControleRemotodaMáquinaHost

Façaoseguintenamáquinadocliente,substituindo123.123.12.3peloendereçoIPdasuamáquinahost:

ssh-Y123.123.12.3
  • -Y,PermiteoencaminhamentoconfiáveldoX11.OsencaminhamentosconfiáveisdoX11nãoestãosujeitosaoscontrolesdeextensãodoX11SECURITY.

vino-preferences
  • vino-preferencestambémnoDashsobDesktopSharing

  1. Marque Allow other users to view your desktop
  2. Marque Allow other users to control your desktop
  3. Marque Require the user to enter this password
  4. Insira uma frase-senha difícil de adivinhar
  5. Fechar

Crie um perfil do Cliente de Área de Trabalho Remota na sua máquina cliente

Faça o seguinte na máquina do cliente:

remmina
  • remmina também no Dash sob Remmina Remote Desktop Client

Ctrl + N ou Ligação > Novo

  1. PreenchaoseuendereçoIP[123.123.12.3]ondedizServer
  2. MudeparaaguiaSSH

  1. Marque Enable SSH Tunnel
  2. Aponte seu Desktop Client para sua porta SSH não padrão
  3. Defina seu SSH Authentication <username> e modo
  4. Conectar

Visualizar e controlar a máquina host

Na máquina cliente, quando for solicitada a senha de <username> , insira-a para criar o túnel SSH. Quando for solicitada a senha do VNC, insira a frase secreta que você inseriu anteriormente na máquina host.

Se for bem-sucedido nesta etapa, você deverá estar visualizando e controlando a área de trabalho da máquina host a partir de sua máquina cliente por meio de um túnel SSH.

    
por jtd 16.02.2014 / 05:30
2
  1. Você poderia usar o ssh para iniciar uma sessão vnc
  2. Use Xnest com o X11 forwording para iniciar remotamente uma sessão e encaminhá-la para o seu computador atual. (Eu faço isso de vez em quando com o meu pi) página man

Eu uso Xnest da seguinte forma:

  • Xnest :1 -ac &
  • , em seguida, DISPLAY=:1 . /etc/X11/Xsession
por demure 04.06.2013 / 18:25
1

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

#!/bin/bash
export DISPLAY=:0
read -e -p "VNC Password: " -i "ubuntu" password
dconf write /org/gnome/desktop/remote-access/enabled true
dconf write /org/gnome/desktop/remote-access/prompt-enabled false
dconf write /org/gnome/desktop/remote-access/authentication-methods "['vnc']"
dconf write /org/gnome/desktop/remote-access/require-encryption false
dconf write /org/gnome/desktop/remote-access/vnc-password \"\'$(echo -n $password | base64)\'\"
dconf dump /org/gnome/desktop/remote-access/
sudo service lightdm restart

A cotação é importante para qualquer uma das configurações de string (ticks únicos entre aspas). Para que o dconf possa gravar, ele precisa de acesso ao XWindows, e é por isso que a exportação da parte DISPLAY é necessária. Eu acho que você ainda precisa estar logado na área de trabalho na máquina Ubuntu real para se conectar com o VNC depois disso. O comando dump está lá apenas para confirmar que todas as configurações foram implementadas, você realmente não precisa disso.

Opcionalmente, você pode querer fazer isso se quiser manter a exibição sempre ativa:

dconf write /org/gnome/desktop/screensaver/lock-enabled false
dconf write /org/gnome/desktop/screensaver/ubuntu-lock-on-suspend false
dconf write /org/gnome/desktop/session/idle-delay "uint32 0"
    
por Integrator 09.04.2017 / 03:11
0

Como iniciar o servidor Vino remotamente sem encaminhar X (somente linha de comando)

Faça logon no computador remoto como o usuário que compartilhará sua área de trabalho e encaminhará a porta 5900 para a mesma porta no host local. Com PuTTY, o redirecionamento é definido em Conexão / SSH / Túneis. Com uma linha de comando, use:

 ssh -L 5900:localhost:5900 [email protected]

Instale vino-server , se ainda não estiver instalado. Por exemplo:

sudo apt install vino

Ativar o compartilhamento de área de trabalho (correspondendo ao número de exibição na primeira e segunda linhas):

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

Inicie um visualizador VNC e conecte-se a localhost para o endereço do servidor VNC.

    
por Futal 08.10.2015 / 14:41
0

baseado no @Khurshid Alam resposta Eu apresento o seguinte trecho:

ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost

  • É um comando que não requer interação

  • Cria o túnel SSH com o encaminhamento de porta, inicia x11vnc de maneira razoavelmente segura e inicia e conecta o visualizador VNC

  • Requer x11vnc no host de destino, mas nenhuma outra configuração

  • Requer vinagre no seu PC, mas você pode alterá-lo trivialmente para outro visualizador VNC
por mnagel 04.04.2016 / 10:58