Existe uma maneira de visualizar (e controlar) uma área de trabalho remota através do SSH? Não terei acesso físico à máquina host remota.
Existe uma maneira de visualizar (e controlar) uma área de trabalho remota através do SSH? Não terei acesso físico à máquina host remota.
Respostas:
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:
sudo -s
export DISPLAY=:0.0
xhost +
/usr/lib/vino/vino-server &
Ele iniciará o servidor vino.
Logout do servidor:
xhost -
Press CTRL+C twice
exit
exit
Em seguida, abra o remmina . Escolha vnc
sob protocolo.
Na basic
guia, coloque o endereço do servidor em server
campo.
Na guia ssh, clique em enable ssh tunnel
. Abaixo ssh authentication
, poderia ser password
ou 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.
x11vnc
é um servidor VNC simples e você não precisará mexer nas configurações do Gnome ou nos 500 firewalls; basta instalar x11vnc
em todos os seus computadores (com fantoches ou o que você estiver usando para controle de massa).
Em seguida, no computador local, execute:
ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"
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
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.
vncviewer
para conexão lenta. Eu, pessoalmente, provavelmente vou definir QualityLevel=4 or 5
porque 0 qualitylevel
(o que é 256 colors
, eu acho) é muito chato para mim.
-auth guess
e executá-lo como root. Muito útil, obrigado!
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.
Faça o seguinte na máquina host:
vino-preferences
vino-preferences
também em Dash sob Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Faça o seguinte na máquina cliente, substituindo 123.123.12.3
pelo endereço IP da máquina host:
ssh -Y 123.123.12.3
vino-preferences
vino-preferences
também em Dash sob Desktop Sharing
Allow other users to view your desktop
Allow other users to control your desktop
Require the user to enter this password
Faça o seguinte na máquina cliente:
remmina
Remmina Remote Desktop Client
Ctrl+ Nou Conexão> Novo
Server
SSH
separadorEnable SSH Tunnel
SSH Authentication
<username>
modo eNa 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.
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"
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
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-server
se 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 localhost
endereço do servidor VNC.
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 VNC
Requer x11vnc no host de destino, mas nenhuma configuração adicional
No PC do servidor.
No PC cliente (de onde você deseja controlar a interface do usuário do servidor).
Armadilhas.