Isso pode ser alcançado com o servidor vino vnc & remmina (ambos são padrão no ubuntu; caso contrário, não o instale executando sudo apt-get install remmina). Em seguida, execute os seguintes comandos do computador local no prompt do terminal:
ssh -Y gman@remote. Use encaminhamento X11 confiável, caso contrário, não funcionará
vino-preferences. Ele abrirá as preferências do vino.
Clique também configure network automatically to accept connection. Mas não digite nenhuma senha, sua base64 codificada . Depois clique em fechar. Então corra:
Em seguida, abra o remmina . Escolha vncsob protocolo.
Na basicguia, coloque o endereço do servidor em servercampo.
Na guia ssh, clique em enable ssh tunnel. Abaixo ssh authentication, poderia ser passwordou public key:
Clique em salvar. E, em seguida, clique duas vezes no nome da conexão (área de trabalho inicial, 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 precisará mexer nas configurações do Gnome ou nos 500 firewalls; basta instalar x11vncem todos os seus computadores (com fantoches ou o que você estiver usando para controle de massa).
Obviamente, troque user@hostpelo nome de usuário e nome do host / IP do computador remoto.
E, em seguida, use um cliente VNC de sua escolha para se conectar localhost:5900. O comando SSH inicia um servidor vnc no computador remoto e, em seguida, faz o túnel dessa porta através do SSH. Você não precisa abrir nenhuma porta (desde que já possa SSH).
Se seus computadores tiverem configurações engraçadas de exibição, é melhor deixar o -display :0segmento no comando SSH. x11vnctentará automaticamente encontrar a exibição correta.
Se você estiver usando o vncviewer com uma conexão ssh lenta, seu comando deve parecer vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0(no Debian / Ubuntu o visualizador é do tightvnc) ou vncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0(no Red Hat / Fedora o visualizador é do tigervnc), onde o nível de qualidade no Debian e no Redhat é entre 0 e 9, onde 9 é melhor, mas precisa de conexão rápida.
Erik
@erik Obrigado por explicar como usá-lo vncviewerpara conexão lenta. Eu, pessoalmente, provavelmente vou definir QualityLevel=4 or 5porque 0 qualitylevel(o que é 256 colors, eu acho) é muito chato para mim.
Khurshid Alam
1
Seu "Método 2" é perfeito para um acesso rápido à tela física remotamente, sem configurações permanentes especiais. Eu precisava adicionar o parâmetro -auth, conforme explicado na mensagem de erro, quando executei o comando, mas, caso contrário, funciona perfeitamente. Obrigado!
1858 Pierre Pierre
método @gerky 3 seria NoMachine, é atualmente o mais rápido e livre (apesar de não opensource), e trabalhar em android também
Aquarius Poder
1
Para o método 2, eu tive que usar -auth guesse executá-lo como root. Muito útil, obrigado!
22616 Bob
9
Visão geral da solução
Supondo que você já tenha configurado um OpenSSH Serverem sua máquina host, primeiro você deve ativar o controle da área de trabalho em sua máquina host. Se você pode habilitar o controle da área de trabalho em sua máquina host localmente, vá para 1a. Se você deve primeiro ativar o controle da área de trabalho em sua máquina host remotamente, vá para 1b.
Em seguida, crie um perfil de Cliente de Área de Trabalho Remota em sua máquina cliente para conectar-se à máquina host através de um túnel SSH e, finalmente, exibir e controlar a área de trabalho da máquina host através de um túnel SSH.
1a. Habilitar localmente o controle remoto da máquina host
Faça o seguinte na máquina host:
vino-preferences
vino-preferences também em Dash sob Desktop Sharing
Carraça Allow other users to view your desktop
Carraça Allow other users to control your desktop
Carraça Require the user to enter this password
Digite uma senha difícil de adivinhar
Fechar
1b. Habilitar remotamente o controle remoto da máquina host
Faça o seguinte na máquina cliente, substituindo 123.123.12.3pelo endereço IP da máquina host:
ssh -Y 123.123.12.3
-Y, habilita o encaminhamento confiável do X11. Os encaminhamentos confiáveis do X11 não estão sujeitos aos controles de extensão do X11 SECURITY.
vino-preferences
vino-preferences também em Dash sob Desktop Sharing
Carraça Allow other users to view your desktop
Carraça Allow other users to control your desktop
Carraça Require the user to enter this password
Digite uma senha difícil de adivinhar
Fechar
Criar perfil de cliente de área de trabalho remota em sua máquina cliente
Faça o seguinte na máquina cliente:
remmina
remmina também em Dash sob Remmina Remote Desktop Client
Ctrl+ Nou Conexão> Novo
Preencha seu endereço IP [123.123.12.3] onde diz Server
Mudar para o SSHseparador
Carraça Enable SSH Tunnel
Aponte o seu Desktop Client para sua porta SSH não padrão
Defina seu SSH Authentication<username>modo e
Conectar
Exibir e controlar a máquina host
Na máquina cliente, quando solicitado <username>, digite a senha para criar o túnel SSH. Quando for solicitada a senha do VNC, digite a senha que você inseriu anteriormente na máquina host.
Se for bem-sucedido nesta etapa, agora você deve visualizar e controlar a área de trabalho da máquina host a partir da máquina cliente através de um túnel SSH.
Isso parece bastante abrangente, mas onde está a porta personalizada 12345 definida no host?
John T
Suponho que você precise de um comando ssh executado a partir do cliente em algum lugar, algo como: ssh -L 12345: localhost: 5900 user @ server_ip antes de usar o cliente remoto, conforme descrito.
John T
3
Consegui definir uma nova instalação do Ubuntu 16.04 a partir de uma conexão ssh remota com o seguinte script:
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:
Use Xnestcom o X11 forwording para iniciar remotamente uma sessão e encaminhá-la para o computador atual. (Eu faço isso de tempos em tempos com minha pi) página de manual
Como iniciar o servidor Vino remotamente sem encaminhar o 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 o PuTTY, o redirecionamento é definido em Conexão / SSH / Túneis. Com uma linha de comando, use:
ssh -L 5900:localhost:5900 user@remote-computer
Instale vino-serverse ainda não estiver instalado. Por exemplo:
sudo apt install vino
Ative o compartilhamento da área de trabalho (correspondendo ao número de exibição na 1ª e na 2ª 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 ao localhostendereço do servidor VNC.
Tem o seguinte. Parece que tudo isso pressupõe que você já está logado em um console da GUI? 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
algal 25/05
0
com base na resposta @Khurshid Alam, apresento o seguinte snippet:
Abra 'preferências do vino' no terminal ou 'Compartilhamento da área de trabalho' usando o traço.
No PC cliente (de onde você deseja controlar a interface do usuário do servidor).
Mantenha as configurações conforme mostrado nas imagens abaixo (com alterações no local do nome de usuário e IP).
Armadilhas.
Quando tentei definir as preferências do vino no servidor a partir de um PC remoto usando SSH, elas foram alteradas, mas a conexão não aconteceu. Eu tive que fazer isso diretamente na máquina do servidor (não remotamente). Não sei o motivo desse comportamento.
Respostas:
Método 1 :
Isso pode ser alcançado com o servidor vino vnc & remmina (ambos são padrão no ubuntu; caso contrário, não o instale executando
sudo apt-get install remmina
). Em seguida, execute os seguintes comandos do computador local no prompt do terminal:ssh -Y gman@remote
. Use encaminhamento X11 confiável, caso contrário, não funcionarávino-preferences
. Ele abrirá as preferências do vino.Clique também
configure network automatically to accept connection
. Mas não digite nenhuma senha, sua base64 codificada . Depois clique em fechar. Então corra:Ele iniciará o servidor vino.
Logout do servidor:
Em seguida, abra o remmina . Escolha
vnc
sob protocolo.Na
basic
guia, coloque o endereço do servidor emserver
campo.Na guia ssh, clique em
enable ssh tunnel
. Abaixossh authentication
, poderia serpassword
oupublic key
:Clique em salvar. E, em seguida, clique duas vezes no nome da conexão (área de trabalho inicial, 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 precisará mexer nas configurações do Gnome ou nos 500 firewalls; basta instalarx11vnc
em todos os seus computadores (com fantoches ou o que você estiver usando para controle de massa).Em seguida, no computador local, execute:
Obviamente, troque
user@host
pelo nome de usuário e nome do host / IP do computador remoto.E, em seguida, use um cliente VNC de sua escolha para se conectar
localhost:5900
. O comando SSH inicia um servidor vnc no computador remoto e, em seguida, faz o túnel dessa porta através do SSH. Você não precisa abrir nenhuma porta (desde que já possa SSH).Se seus computadores tiverem configurações engraçadas de exibição, é melhor deixar o
-display :0
segmento no comando SSH.x11vnc
tentará automaticamente encontrar a exibição correta.Fonte: askubuntu
fonte
vncviewer localhost::5900 -viewonly -encodings "tight" -quality 0
(no Debian / Ubuntu o visualizador é do tightvnc) ouvncviewer localhost::5900 -viewonly -PreferredEncoding tight QualityLevel=0
(no Red Hat / Fedora o visualizador é do tigervnc), onde o nível de qualidade no Debian e no Redhat é entre 0 e 9, onde 9 é melhor, mas precisa de conexão rápida.vncviewer
para conexão lenta. Eu, pessoalmente, provavelmente vou definirQualityLevel=4 or 5
porque0 qualitylevel
(o que é256 colors
, eu acho) é muito chato para mim.-auth guess
e executá-lo como root. Muito útil, obrigado!Visão geral da solução
Supondo que você já tenha configurado um
OpenSSH Server
em sua máquina host, primeiro você deve ativar o controle da área de trabalho em sua máquina host. Se você pode habilitar o controle da área de trabalho em sua máquina host localmente, vá para 1a. Se você deve primeiro ativar o controle da área de trabalho em sua máquina host remotamente, vá para 1b.Em seguida, crie um perfil de Cliente de Área de Trabalho Remota em sua máquina cliente para conectar-se à máquina host através de um túnel SSH e, finalmente, exibir e controlar a área de trabalho da máquina host através de um túnel SSH.
1a. Habilitar localmente o controle remoto da máquina host
Faça o seguinte na máquina host:
vino-preferences
também em Dash sobDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
1b. Habilitar remotamente o controle remoto da máquina host
Faça o seguinte na máquina cliente, substituindo
123.123.12.3
pelo endereço IP da máquina host:vino-preferences
também em Dash sobDesktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Criar perfil de cliente de área de trabalho remota em sua máquina cliente
Faça o seguinte na máquina cliente:
Remmina Remote Desktop Client
Ctrl+ Nou Conexão> Novo
Server
SSH
separadorEnable SSH Tunnel
SSH Authentication
<username>
modo eExibir e controlar a máquina host
Na máquina cliente, quando solicitado
<username>
, digite a senha para criar o túnel SSH. Quando for solicitada a senha do VNC, digite a senha que você inseriu anteriormente na máquina host.Se for bem-sucedido nesta etapa, agora você deve visualizar e controlar a área de trabalho da máquina host a partir da máquina cliente através de um túnel SSH.
fonte
Consegui definir uma nova instalação do Ubuntu 16.04 a partir de uma conexão ssh remota com o seguinte script:
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:
fonte
Xnest
com o X11 forwording para iniciar remotamente uma sessão e encaminhá-la para o computador atual. (Eu faço isso de tempos em tempos com minha pi) página de manualEu uso
Xnest
assim:Xnest :1 -ac &
DISPLAY=:1 . /etc/X11/Xsession
fonte
Como iniciar o servidor Vino remotamente sem encaminhar o 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 o PuTTY, o redirecionamento é definido em Conexão / SSH / Túneis. Com uma linha de comando, use:
Instale
vino-server
se ainda não estiver instalado. Por exemplo:Ative o compartilhamento da área de trabalho (correspondendo ao número de exibição na 1ª e na 2ª linhas):
Inicie um visualizador VNC e conecte-se ao
localhost
endereço do servidor VNC.fonte
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
com base na resposta @Khurshid Alam, apresento o seguinte snippet:
ssh $TARGETHOST -L 5900:localhost:5900 "x11vnc -localhost -display :0 -noxdamage" &; sleep 10 && vinagre localhost
É um comando que não requer nenhuma interação
Ele cria o túnel SSH com encaminhamento de porta, inicia de
x11vnc
maneira razoavelmente segura e inicia e conecta o visualizador VNCRequer x11vnc no host de destino, mas nenhuma configuração adicional
fonte
No PC do servidor.
No PC cliente (de onde você deseja controlar a interface do usuário do servidor).
Armadilhas.
fonte