Como Instalar e Configurar o Acesso Remoto VNC para o Ambiente de Trabalho GNOME no CentOS 7

Introdução

VNC ou Virtual Network Computing é um protocolo independente de plataforma que permite aos utilizadores ligarem-se a um sistema de computador remoto e utilizarem os seus recursos a partir de uma Interface Gráfica de Utilizador (GUI).

É como controlar remotamente uma aplicação: as teclas ou cliques do computador cliente são transmitidos através da rede para o computador remoto. O VNC também permite a partilha da área de transferência entre ambos os computadores. Se você vem de um Microsoft Windows server background, VNC é muito parecido com o Remote Desktop Service, exceto que também está disponível para OS X, Linux, e outros sistemas operacionais.

Como tudo mais no mundo da rede, VNC é baseado no modelo de servidor cliente: O servidor VNC funciona num computador remoto – o seu Droplet – que serve os pedidos dos clientes de entrada.

Goals

Neste tutorial vamos aprender como instalar e configurar um servidor VNC no CentOS 7. Nós instalaremos o servidor TigerVNC que está disponível gratuitamente no repositório TigerVNC GitHub.

Para demonstrar como o VNC funciona, nós também instalaremos o desktop GNOME no seu servidor CentOS. Nós iremos criar duas contas de usuário e configurar o acesso VNC para elas. Vamos então testar sua conectividade com o desktop remoto, e finalmente, aprender como proteger a conexão remota através de um túnel SSH.

Prerequisites

Os comandos, pacotes, e arquivos mostrados neste tutorial foram testados em uma instalação mínima do CentOS 7. Nós recomendaríamos o seguinte:

  • Distro: CentOS 7, 64-bit
  • Resource Requirements: Um Droplet com 2 GB de RAM
  • Para seguir este tutorial, você deve usar um usuário sudo. Para entender como funcionam os privilégios do sudo, você pode consultar este tutorial do DigitalOcean

Aviso: Você não deve executar quaisquer comandos, consultas ou configurações deste tutorial em um servidor Linux de produção. Isso pode resultar em problemas de segurança e downtime.

Passo 1 – Criando duas contas de usuário

Primeiro, vamos criar duas contas de usuário. Estas contas se conectarão remotamente ao nosso servidor CentOS 7 a partir de clientes VNC.

  • joevnc
  • janevnc

Executar o seguinte comando para adicionar uma conta de usuário para joevnc:

sudo useradd -c "User Joe Configured for VNC Access" joevnc

A seguir executar o comando passwd para mudar a senha do joevnc:

sudo passwd joevnc

A saída irá nos pedir uma nova senha. Uma vez fornecida, a conta estará pronta para o login:

Changing password for user joevnc.New password:Retype new password:passwd: all authentication tokens updated successfully.

Próximo, crie uma conta para janevnc:

sudo useradd -c "User Jane Configured for VNC Access" janevnc

Configure a senha para janevnc:

sudo passwd janevnc

Passo 2 – Instalando o ambiente de trabalho GNOME:

Agora vamos instalar o ambiente de trabalho GNOME. O GNOME é um esforço colaborativo: é uma coleção de software livre e de código aberto que compõe um ambiente desktop muito popular. Existem outros ambientes de trabalho como o KDE, mas o GNOME é mais popular. Nossos usuários VNC vão usar o GNOME para interagir com o servidor a partir de seu ambiente de trabalho:

sudo yum groupinstall -y "GNOME Desktop"

Dependente da velocidade da sua rede, isto pode demorar alguns minutos.

Após o grupo de pacotes estar instalado, reinicie o servidor:

sudo reboot

Procura de problemas – Servidor Preso na Fase de Arranque

Dependente de como o seu servidor foi configurado, quando a máquina arrancar pode permanecer na fase de arranque mostrando uma mensagem como esta:

Initial setup of CentOS Linux 7 (core)1) License information (Licence not accepted)Please make your choice from above :

Para ultrapassar isto, prima 1 (ler a licença), depois 2 (aceitar a licença), e depois C (para continuar). Você pode ter que pressionar C duas ou mais vezes. A imagem abaixo mostra isto:

Se você não vir este erro e o processo de inicialização for suave, melhor ainda – você pode passar para o próximo passo.

Passo 3 – Instalando o TigerVNC Server

TigerVNC é o software que nos permitirá fazer uma conexão remota ao desktop.

Instalar o servidor Tiger VNC:

sudo yum install -y tigervnc-server

Este deve mostrar a saída como o seguinte:

Loaded plugins: fastestmirror, langpacksLoading mirror speeds from cached hostfile. . .Running transaction Installing : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1 Verifying : tigervnc-server-1.2.80-0.30.20130314svn5065.el7.x86_64 1/1Installed: tigervnc-server.x86_64 0:1.2.80-0.30.20130314svn5065.el7Complete!

Agora temos o servidor VNC e o ambiente de trabalho GNOME instalado. Também criamos duas contas de usuário para conectar através de VNC.

Passo 4 – Configurando o Serviço VNC para Dois Clientes

Servidor VNC não inicia automaticamente quando ele é instalado pela primeira vez. Para verificar isso, execute o seguinte comando:

sudo systemctl status vncserver@:.service

A saída será assim:

vncserver@:.service - Remote desktop service (VNC) Loaded: loaded (/usr/lib/systemd/system/[email protected]; disabled) Active: inactive (dead)

Você também pode executar este comando:

sudo systemctl is-enabled [email protected]

Isto deve mostrar a saída assim:

disabled

Então por que ele está desabilitado? Isso porque cada usuário iniciará uma instância separada do daemon do serviço VNC. Em outras palavras, VNC não é executado como um único processo que serve a cada requisição de usuário. Cada usuário conectado via VNC terá que iniciar uma nova instância do daemon (ou o administrador do sistema pode automatizar isto).

CentOS 7 usa o daemon systemd para iniciar outros serviços. Cada serviço que roda nativamente sob systemd tem um arquivo de unidade de serviço que é colocado sob o diretório /lib/systemd/system pelo instalador do yum. Processos que começam automaticamente no momento do boot têm um link para este arquivo de unidade de serviço colocado no diretório /etc/systemd/system/.

No nosso caso, um arquivo genérico de unidade de serviço foi criado no diretório /lib/systemd/system/, mas nenhum link foi feito em /etc/systemd/system/. Para testar isso, execute os seguintes comandos:

sudo ls -l /lib/systemd/system/vnc*

Você deve ver:

-rw-r--r--. 1 root root 1744 Jun 10 16:15 /lib/systemd/system/[email protected]

Em seguida, verifique em /etc/systemd/system/:

sudo ls -l /etc/systemd/system/*.wants/vnc*

Este não existe:

ls: cannot access /etc/systemd/system/*.wants/vnc*: No such file or directory

Então, o primeiro passo é iniciar duas novas instâncias do servidor VNC para nossos dois usuários. Para fazer isso, precisaremos fazer duas cópias do arquivo genérico da unidade de serviço VNC sob /etc/system/system. No trecho de código abaixo, você está fazendo duas cópias com dois nomes diferentes:

sudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:4.servicesudo cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:5.service

Então, por que adicionamos dois números (junto com os dois pontos) nos nomes dos arquivos copiados?

Again, que volta ao conceito de serviços VNC individuais. VNC por si só corre na porta 5900. Uma vez que cada utilizador irá correr o seu próprio servidor VNC, cada utilizador terá de se ligar através de uma porta separada. A adição de um número no nome do ficheiro diz ao VNC para correr esse serviço como uma sub-porta de 5900. Então no nosso caso, o serviço VNC do joevnc irá correr na porta 5904 (5900 + 4) e o do janevnc irá correr na 5905 (5900 + 5).

Nexterior editar o ficheiro da unidade de serviço para cada cliente. Abra o arquivo /etc/systemd/system/vncserver@:4.service com o editor vi:

sudo vi /etc/systemd/system/vncserver@:4.service

Uma olhada na seção “Quick HowTo” nos diz que já completamos o primeiro passo. Agora precisamos de percorrer os restantes passos. Os comentários também nos dizem que a VNC é uma conexão não confiável. Falaremos sobre isso mais tarde.

Por enquanto, edite a seção do arquivo, substituindo instâncias de <USER> por joevnc. Além disso, adicione a cláusula -geometry 1280x1024 no final do parâmetro ExecStart. Isto só diz ao VNC o tamanho da tela na qual ele deve começar. Você irá modificar duas linhas no total. Aqui está como o arquivo editado deve ser (note que o arquivo inteiro não é mostrado):

# The vncserver service unit file## Quick HowTo:# 1. Copy this file to /etc/systemd/system/vncserver@:<display>.service# 2. Edit <USER> and vncserver parameters appropriately# ("runuser -l <USER> -c /usr/bin/vncserver %i -arg1 -arg2")# 3. Run `systemctl daemon-reload`# 4. Run `systemctl enable vncserver@:<display>.service`#. . .Description=Remote desktop service (VNC)After=syslog.target network.targetType=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l joevnc -c "/usr/bin/vncserver %i -geometry 1280x1024" PIDFile=/home/joevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'WantedBy=multi-user.target

Salve o arquivo e saia do vi.

Similiarmente, abra o ficheiro /etc/systemd/system/vncserver@:5.service no vi e faça as alterações para o utilizador janevnc:

sudo vi /etc/systemd/system/vncserver@:5.service

Aqui está apenas a secção com as alterações marcadas:

Type=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/sbin/runuser -l janevnc -c "/usr/bin/vncserver %i -geometry 1280x1024"PIDFile=/home/janevnc/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

Next, corra os seguintes comandos para recarregar o daemon systemd e também para se certificar que o VNC arranca para dois utilizadores no momento do arranque.

sudo systemctl daemon-reload

Ativar a primeira instância do servidor:

sudo systemctl enable vncserver@:4.service

Saída:

ln -s '/etc/systemd/system/vncserver@:4.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:4.service'

Ativar a segunda instância do servidor:

sudo systemctl enable vncserver@:5.service

Saída:

ln -s '/etc/systemd/system/vncserver@:5.service' '/etc/systemd/system/multi-user.target.wants/vncserver@:5.service'

Agora você configurou duas instâncias do servidor VNC.

Passo 5 – Configurando seu Firewall

Próximo, precisaremos configurar o firewall para permitir o tráfego VNC somente através das portas 5904 e 5905. O CentOS 7 usa o Dynamic Firewall através do daemon firewalld; o serviço não precisa reiniciar para que as mudanças tenham efeito.

O serviço firewalld deve iniciar automaticamente no momento do boot do sistema, mas é sempre bom checar:

sudo firewall-cmd --state

Isto deve mostrar:

running

Se o estado estiver “não executando” por alguma razão, execute o seguinte comando para ter certeza de que está executando:

sudo systemctl start firewalld

Adicionar agora as regras para as portas 5904 e 5905:

sudo firewall-cmd --permanent --zone=public --add-port=5904-5905/tcp

Eliminar:

success

Reloadar o firewall:

sudo firewall-cmd --reload

Eliminar:

success

Passo 6 – Definindo senhas VNC

Estamos a um passo de ver o VNC em ação. Neste passo, os utilizadores terão de definir as suas palavras-passe VNC. Estas não são as senhas Linux dos usuários, mas as senhas para entrar nas sessões VNC.

Abrir outra conexão de terminal com o servidor CentOS 7, e desta vez entrar como joevnc.

ssh joevnc@your_server_ip

Executar o seguinte comando:

vncserver

Como mostrado na saída abaixo, o servidor irá pedir ao joevnc para configurar uma senha VNC. Depois de digitar a senha, o programa também mostra um número de arquivos sendo criados no diretório home do usuário:

You will require a password to access your desktops.Password:Verify:xauth: file /home/joevnc/.Xauthority does not existNew 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1Creating default startup script /home/joevnc/.vnc/xstartupStarting applications specified in /home/joevnc/.vnc/xstartupLog file is /home/joevnc/.vnc/localhost.localdomain:1.log

Vejamos a linha New 'localhost.localdomain:1 (joevnc)' desktop is localhost.localdomain:1. localhost.localdomain era o nome do servidor no nosso exemplo; no seu caso poderia ser diferente. Note o número após o nome do servidor: (1, separado por dois pontos). Não é o número no ficheiro da unidade de serviço do joevnc (que era 4). Isso porque este é o número de exibição que a sessão do joevnc irá rodar neste servidor, não o número da porta do serviço (5904) em si.

Próximo abrir uma nova sessão de terminal e entrar como janevnc. Aqui também, inicie o servidor VNC e defina uma senha para janevnc:

vncserver

Você deve ver uma saída similar mostrando que a sessão de janevnc será executada no display 2.

Finalmente, recarregue os serviços da sessão do terminal principal:

sudo systemctl daemon-reloadsudo systemctl restart vncserver@:4.servicesudo systemctl restart vncserver@:5.service

Passo 7 – Conectando-se a Desktops Remotos com um Cliente VNC

Para este tutorial, vamos assumir que os usuários joevnc e janevnc estão tentando se conectar ao servidor CentOS 7 a partir de seus computadores Windows.

Cada um deles precisará de um cliente VNC para que o Windows faça login no desktop remoto. Este cliente é como um cliente terminal como o PuTTY, exceto que ele mostra a saída gráfica. Há vários clientes VNC disponíveis, mas o que vamos usar é o RealVNC, disponível aqui. O VNC Viewer para Mac OS X está disponível para download na mesma página, e a versão para Mac é bastante similar à do Windows.

Quando o VNC Viewer é iniciado, mostra uma caixa de diálogo como esta:

No campo VNC Server, adicione o endereço IP do seu servidor CentOS 7. Especifique o número da porta 5904 após o IP do servidor, separado por dois pontos (:). Nós usamos 5904 porque essa é a porta de serviço VNC para joevnc.

Nós também decidimos deixar o VNC Viewer escolher o método de encriptação. Esta opção só encripta a senha enviada através da rede. Qualquer comunicação subsequente com o servidor será descriptografada. (Nós configuraremos um túnel SSH seguro no passo final.)

Na verdade, uma mensagem de aviso mostra apenas que:

Aceitar o aviso por enquanto. Um aviso de senha é exibido:

Entrar a senha VNC do joevnc que você definiu anteriormente.

>

Uma nova janela se abre mostrando o desktop GNOME para o nosso servidor remoto CentOS:

Aceitar a mensagem de boas-vindas padrão.

>

Agora o joevnc pode iniciar uma ferramenta gráfica como a calculadora GNOME:

>

Pode deixar esta conexão desktop aberta.

Agora o janevnc também pode iniciar outra sessão VNC com o servidor CentOS. O endereço IP é o mesmo, e a porta é 5905:

Quando o janevnc faz login via VNC Viewer, é mostrado um desktop vazio com uma mensagem de boas-vindas, tal como foi mostrado para o joevnc. Em outras palavras, os dois usuários não estão compartilhando as instâncias do desktop. O desktop do joevnc ainda deve estar mostrando a calculadora.

Para fechar a sessão do desktop remoto, basta fechar a janela. No entanto, isto não pára o serviço VNC do usuário em segundo plano no servidor. Se o serviço não for parado ou reiniciado e a máquina não tiver reiniciado, a mesma sessão desktop será apresentada no próximo logon.

Fechar as janelas VNC Viewer para joevnc e janevnc. Feche também as suas sessões de terminal. Da janela de terminal principal, verifique se os serviços VNC ainda estão rodando:

sudo systemctl status vncserver@:4.service

A saída mostra que o desktop remoto ainda está rodando:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: active (running) since Sat 2014-11-01 12:06:49 EST; 58min ago Process: 2014 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

Cheque o segundo serviço:

sudo systemctl status vncserver@:5.service

Este também está rodando:

vncserver@:5.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:5.service; enabled) Active: active (running) since Sat 2014-11-01 12:42:56 EST; 22min ago Process: 3748 ExecStart=/sbin/runuser -l janevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=0/SUCCESS). . .

Se você quisesse voltar ao desktop do joevnc neste ponto, você veria a mesma aplicação de calculadora aberta.

Esta apresenta alguns desafios interessantes para os administradores de sistema. Se você tem um número de usuários conectando-se ao servidor via VNC, você pode querer inventar alguma forma de parar seus serviços VNC quando não for mais necessário. Isto pode salvar alguns recursos valiosos do sistema.

Procura de problemas – Crashes do serviço VNC

Como você testa e brinca com VNC, você pode às vezes descobrir que o serviço falhou e é irrecuperável. Quando você tenta verificar o status:

sudo systemctl status vncserver@:4.service

Esta longa mensagem de erro pode aparecer:

vncserver@:4.service - Remote desktop service (VNC) Loaded: loaded (/etc/systemd/system/vncserver@:4.service; enabled) Active: failed (Result: exit-code) since Fri 2014-11-07 00:02:38 EST; 2min 20s ago Process: 2221 ExecStart=/sbin/runuser -l joevnc -c /usr/bin/vncserver %i -geometry 1280x1024 (code=exited, status=2) Process: 1257 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

Tentar iniciar o serviço não funciona:

sudo systemctl start vncserver@:4.service

Início falhado:

Job for vncserver@:4.service failed. See 'systemctl status vncserver@:4.service' and 'journalctl -xn' for details.

Usualmente a razão é simples o suficiente. Verifique /var/log/messages:

sudo tail /var/log/messages

O erro relacionado será semelhante a isto:

Nov 7 00:08:36 localhost runuser: Warning: localhost.localdomain:4 is taken because of /tmp/.X11-unix/X4Nov 7 00:08:36 localhost runuser: Remove this file if there is no X server localhost.localdomain:4Nov 7 00:08:36 localhost runuser: A VNC server is already running as :4Nov 7 00:08:36 localhost systemd: vncserver@:4.service: control process exited, code=exited status=2Nov 7 00:08:36 localhost systemd: Failed to start Remote desktop service (VNC).Nov 7 00:08:36 localhost systemd: Unit vncserver@:4.service entered failed state.Nov 7 00:08:36 localhost systemd: Failed to mark scope session-c3.scope as abandoned : Stale file handle

O remédio é apagar o ficheiro sob a pasta /tmp:

sudo rm -i /tmp/.X11-unix/X4

Saída:

rm: remove socket '/tmp/.X11-unix/X4'? y

Então inicie o serviço VNC:

sudo systemctl start vncserver@:4.service

Solução de Problemas Gerais:

Embora relativamente raro, poderá encontrar outros erros quando trabalhar com VNC. Por exemplo, a tela do seu desktop remoto pode ficar em branco ou pendurada, a sessão pode travar com uma mensagem de erro críptico, o VNC Viewer pode não conectar corretamente ou transmitir comandos para a GUI para iniciar aplicações, etc.

Recomendamos verificar o arquivo /var/log/messages para obter uma melhor compreensão. Às vezes você pode precisar reiniciar seu servidor, ou em casos extremos recriar o serviço VNC.

Recursos do sistema também podem ser culpados; você pode ter que adicionar memória RAM extra ao seu Droplet, etc.

Passo 8 – Protegendo Sessões VNC através do SSH Tunneling

Até agora tanto o joevnc quanto o janevnc têm acessado seus desktops remotos através de canais não criptografados. Como vimos antes, o VNC Viewer nos avisa sobre isso no momento da conexão; apenas a senha é criptografada quando as sessões começam. Qualquer tráfego de rede subsequente e transferência de dados está aberta para qualquer um interceptar no meio.

Sobre o túnel SSH

É aqui que as sessões do Secure Shell (SSH) podem ajudar. Com SSH, VNC pode ser executado dentro do contexto de uma sessão criptografada SSH. Isto é conhecido como tunelização. Com efeito, os pigs pigs de tráfego VNC no protocolo SSH, resultando em toda a sua comunicação com o servidor sendo criptografada. É chamado de tunnelling porque o SSH está fornecendo proteção wraparound sobre VNC e VNC está rodando como se estivesse em um túnel dentro do SSH. O túnel SSH pode ser usado para outros protocolos como POP, X, ou IMAP também.

SSH túnel funciona com encaminhamento de porta que é basicamente um meio de traduzir o acesso de uma porta em particular para uma porta diferente em outra máquina. Com o encaminhamento de portas, quando uma aplicação cliente se conecta à porta A rodando na máquina A, ela é transparente encaminhada para a porta B rodando na máquina B. A aplicação cliente não está ciente desta tradução e acha que ela está se conectando à porta original. Port forwarding é uma das características do protocolo SSH.

Para informações mais detalhadas sobre túneis SSH, leia este tutorial.

Neste tutorial nós configuramos VNC para rodar nas portas 5904 (para joevnc) e 5905 (para janevnc).

Com o encaminhamento de portas, podemos configurar nosso cliente VNC local para conectar à porta 5900 no computador cliente local, e isto pode ser mapeado para a porta 5905 no servidor remoto. Isto é exemplo para a conexão do janevnc, mas você poderia facilmente seguir os mesmos passos para qualquer outro cliente.

Quando a aplicação cliente VNC inicia, ela pode ser apontada para a porta 5900 no localhost, e nosso redirecionamento de porta irá transportá-la transparentemente para a porta 5905 no servidor remoto.

Nota: Você terá que iniciar uma seção SSH cada vez para tornar a conexão segura.

OS X

No seu Mac, abra o Terminal.

Introduza a seguinte informação de conexão, tendo a certeza de substituir your_server_ip pelo endereço IP do seu servidor remoto:

ssh -L 5900:your_server_ip:5905 janevnc@your_server_ip -N

Introduza a senha UNIX do janevnc. A conexão aparecerá pendurada; você pode mantê-la em execução enquanto você usar o desktop remoto.

Pule agora para as instruções do VNC Viewer.

Windows

Para proteger a sessão VNC do janevnc, vamos assumir que o computador Windows local tem o PuTTY instalado. O PuTTY é gratuito e pode ser descarregado a partir daqui.

Se as sessões VNC e terminal do janevnc ainda não estão fechadas, feche-as agora.

Inicie o PuTTY. Na tela da sessão, certifique-se de especificar o endereço IP do servidor e dê um nome descritivo para a conexão, depois clique no botão Save (Salvar) para salvar os detalhes da conexão. Note como especificamos username@your_server_ip no campo Hostname:

Next, expanda o item do menu SSH no painel de navegação esquerdo, e selecione o item X11. Isto mostra as propriedades de encaminhamento do X11 para a sessão. Certifique-se de que a caixa de seleção para Habilitar o encaminhamento X11 esteja marcada. Isto assegura que o SSH encripta o tráfego do X Windows que flui entre o servidor e o cliente:

Finalmente, selecione SSH > Tunnels. Digite 5900 no campo Porta de origem. No campo Destino, especifique o nome ou endereço IP do seu servidor, seguido por dois pontos e o número da porta VNC para o usuário pretendido. No nosso caso, especificamos your_server_ip:5905.

Alternately, você poderia usar a porta 5902. O 2 neste caso seria o número de exibição para janevnc (lembre-se da mensagem exibida quando janevnc rodou o comando vncserver).

Clique no botão Add e o mapeamento será adicionado em Forwarded ports. Aqui é onde estamos adicionando o encaminhamento de portas para a sessão SSH; quando o usuário se conectar ao localhost na porta 5900, a conexão será automaticamente tunelada através do SSH para a porta do servidor remoto 5905.

Voltar aos itens Sessions e salvar a sessão para o janevnc. Clique no botão Abrir e uma nova sessão de terminal será aberta para o janevnc. Entre como janevnc com a senha UNIX apropriada:

VNC Viewer

Próximo VNC Viewer de novo. Desta vez, no endereço do servidor VNC, digite <^> e deixe o servidor VNC escolher o método de criptografia:

Clique no botão Connect.

Você ainda receberá a caixa de diálogo avisando sobre uma sessão não criptografada, mas desta vez você pode ignorá-la com segurança. O VNC Viewer não sabe sobre a porta para a qual está sendo encaminhada (isto foi definido na sessão SSH que acabou de ser iniciada) e assume que você está tentando se conectar à máquina local.

Aceptar este aviso mostrará o prompt de senha familiar. Digite a senha VNC do janevnc para acessar o desktop remoto.

Então, como você sabe que a sessão foi criptografada? Se você pensar sobre isso, nós definimos o encaminhamento de portas na sessão SSH. Se uma sessão SSH não tivesse sido estabelecida, o encaminhamento de portas não teria funcionado. Na verdade, se você fechar a janela do terminal e sair da sessão PuTTY então tente se conectar somente com o VNC Viewer, uma tentativa de conexão para localhost:5900 mostraria a seguinte mensagem de erro:

Então, se a conexão localhost:5900 funcionar, você pode estar confiante que a conexão está criptografada.

Lembre que você vai querer estabelecer a conexão SSH primeiro toda vez que você usar VNC, para ter certeza que sua conexão está sempre criptografada.

Conclusion

Accessing your CentOS Linux system from a GUI front end pode tornar a administração do sistema muito mais simples. Você pode se conectar de qualquer sistema operacional cliente e não tem que depender de painéis de controle de hospedagem baseados na web. O VNC tem uma pegada muito menor em comparação com a maioria dos painéis de controle.

Embora tenhamos mostrado como dois usuários comuns podem se conectar com seus clientes VNC, isso dificilmente é prático em ambientes de produção sérios. Na realidade, os usuários terão aplicações ou navegadores personalizados para acessar o servidor. Executar uma série de serviços VNC para cada usuário também cria uma carga desnecessária sobre os recursos do sistema, sem mencionar os riscos inerentes a ele.

Se você decidir instalar e executar VNC no seu servidor Linux de produção, nós recomendamos fortemente a sua utilização apenas para fins administrativos.

Deixe uma resposta

O seu endereço de email não será publicado.