Sua melhor aposta é instalar o xrdp . Após a instalação, você pode usar um cliente RDP para se conectar à máquina - você será solicitado a fornecer suas credenciais como faria na tela de login.
Eu quero acessar uma máquina Ubuntu remotamente via VNC. Mas eu posso acessar a máquina Ubuntu apenas se o usuário estiver logado. Eu quero acessar a máquina Ubuntu via VNC a partir da própria tela de login. Podemos acessar todas as máquinas do Windows a partir da tela de login. No entanto, não conseguimos acessar a máquina Ubuntu a partir da tela de login. Existe alguma maneira, mas não estou ciente dos detalhes. Alguém pode dar uma solução para esse problema?
Sua melhor aposta é instalar o xrdp . Após a instalação, você pode usar um cliente RDP para se conectar à máquina - você será solicitado a fornecer suas credenciais como faria na tela de login.
No geral, recomendo x11vnc
.
apt-get -y install x11vnc
x11vnc -storepasswd
Digite sua senha, ela é salva por padrão em ~/.vnc/passwd
na forma criptografada INSECURE. Ele pode ser descriptografado porque a chave é conhecida. .. proteja-o com permissões do sistema de arquivos)
chmod 600 ~/.vnc/passwd
Salvar meu script auxiliar localmente:
mkdir ~/bin/
curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh
Do seu host do VNC Client:
ssh -f -L 5900:127.0.0.1:5900 -p 22 [email protected] '~/bin/start_x11vnc.sh && sleep 10'
Ou, do seu host VNC Server, execute:
~/bin/start_x11vnc.sh
por meio de um terminal (ou inicie-o como um daemon com -forever
como um serviço init.d , serviço upstart , unidade systemd , ou como você quiser)
Agora, execute seu cliente VNC de sua escolha do host do cliente, aponte para: 127.0.0.1:5900
, efetue login com a senha salva acima.
A maioria dos X gerenciadores de exibição (como GDM , XDM , KDM ) inicie um servidor X11 inicial e autentique-o a> com um MIT Magic Cookie . Dependendo do seu gerenciador de exibição, o magic cookie será encontrado em um dos vários locais .
Eu tive sorte em abrir uma sessão VNC na tela de login do Ubuntu GDM * NOTE1 encontrando o magic cookie com este script :
#!/bin/bash
DEFAULT_DISPLAY=:0
X11VNC_DISPLAY="$DEFAULT_DISPLAY"
if [ -x /usr/bin/x11vnc ]; then
[ "$1" == '-nocache' ] && CACHE_FLAG='-noncache' || CACHE_FLAG='-noncache'
[ "$2" == '-guess' ] && GUESS_FLAG='-auth guess' || GUESS_FLAG=''
[ -f /root/.vnc/passwd ] && PASSWORD="/root/.vnc/passwd"
[ -f $HOME/.vnc/passwd ] && PASSWORD="$HOME/.vnc/passwd"
[ ! -z "$PASSWORD" ] && x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
echo "\n*********************************************************************"
echo "*** Could not start x11vnc! Trying again with gdm MAGIC_COOKIE! ***"
echo "*********************************************************************\n"
# Old GDM location for Ubuntu <= 17.10
MAGIC_COOKIE_FILE='sudo find /var/run/gdm/ -iname database | grep for-gdm'
# New GDM location for Ubuntu >= 17.10
[ -z "$MAGIC_COOKIE_FILE" ] && NUM_MAGIC_COOKIE_FILE_SESSIONS='sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' 2>/dev/null | wc -l'
if [ -z "$MAGIC_COOKIE_FILE" -a "$NUM_MAGIC_COOKIE_FILE_SESSIONS" -gt 1 ]; then
# Find the current user's session
MAGIC_COOKIE_FILE='sudo find /run/user/$(id -u) -iwholename '*/gdm/*' -iname '*Xauthority''
X11VNC_DISPLAY=":1"
else
# Find the GDM user's session (or whichever shows up first in ps list)
# This should pick up the original gdm session which grabs :0
# If you login after gdm login screen, your Xorg server may end up on another display!
# Workaround for now is to restart x11vnc on that display number
[ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE='sudo find /run/user/ -iwholename '*/gdm/*' -iname '*Xauthority' | head -n1'
fi
# Old lightdm location for Ubuntu <= 17.10
[ -z "$MAGIC_COOKIE_FILE" ] && MAGIC_COOKIE_FILE='sudo find /var/lib -name '.Xauthority' -o -wholename '/var/run/lightdm/root/:0' | head -n1'
#sudo bash -c "[ -z \"$MAGIC_COOKIE_FILE\" -a -e /var/run/lightdm/root/:0 ]" && MAGIC_COOKIE_FILE='/var/run/lightdm/root/:0'
[ -n "$MAGIC_COOKIE_FILE" -a -z "$GUESS_FLAG" ] && AUTH_COOKIE_FLAG="-auth $MAGIC_COOKIE_FILE"
[ ! -z "$PASSWORD" ] && sudo x11vnc -display $X11VNC_DISPLAY -xkb -rfbauth $PASSWORD -rfbport 5900 -shared -forever -nowf -norc -notruecolor -bg $GUESS_FLAG $CACHE_FLAG -noxdamage ${AUTH_COOKIE_FLAG}
fi
fi
Eu posso iniciar este script (chamei-o de start_x11vnc.sh
) a qualquer momento via SSH ... antes mesmo do login através da tela de login gdm
. Ele inicia um servidor x11vnc
, ao qual eu posso me conectar ao túnel SSH . (Use ssh -L 5900:127.0.0.1:5900
ou adicione LocalForward 5900 127.0.0.1:5900
à entrada do seu host em ~/.ssh/config
).
NOTE1 : Em algumas novas versões de distro, como Ubuntu > = 17.10, a tela de sessão X do GDM é completamente separada da exibição da sessão X do usuário logado. Portanto, é necessário primeiro conectar-se à sessão do GDM X, efetuar o login ... e finalmente desconectar e reconectar-se à recém-iniciada sessão X. Por que agora eles fazem isso é um mistério, mas quebrou a versão antiga desse script.
Para ativar o login do GDM em uma conexão remota VNC ssh, tente com o X11vnc. Veja também esta resposta .
Veja como fazer isso com o VNC, se você não quiser usar o RDP:
sudo apt-get install x11vnc
(Ou através do Ubuntu Software Center - > Servidor X11VNC) Defina uma senha:
sudo mkdir /etc/x11vnc
sudo x11vnc -storepasswd /etc/x11vnc/passwd
Escolha y
para salvar a senha.
Crie um arquivo vazio em /etc/init
chamado x11vnc.conf
:
sudo -H gedit /etc/init/x11vnc.conf
Cole isso no arquivo:
start on login-session-start
exec x11vnc -xkb -forever -auth /var/run/lightdm/root/:0 -display :0 -rfbauth /etc/x11vnc/passwd -rfbport 5900 -bg -o /var/log/x11vnc.log
Salvar e fechar
É isso! Agora você deve conseguir conectar-se a qualquer cliente VNC antes do login.
re: tente com X11vnc
x11vnc não foi atualizado desde setembro de 2011 !!!! Existem bugs conhecidos e estou sendo atingido por um que aciona uma pilha de quebra de x11vnc a qualquer momento em um diálogo pop-up (como clicar no menu 'arquivo' em qualquer janela) desconectando a sessão.
O Raspberry pi pode se conectar à sessão do gerenciador de desktop em: 0, por que diabos isso é um problema tão grande para o Ubuntu?!?! Por que é necessário confiar em um programa órfão de 7 anos para fazer isso em qualquer sistema operacional moderno?