如何从登录屏幕通过 VNC 访问 ubuntu 机器?

kar*_*k87 18 vnc remote-desktop remote-access remote-control

我想通过 VNC 远程访问 Ubuntu 机器。但是只有当用户登录时我才能访问 Ubuntu 机器。我想从登录屏幕本身通过 VNC 访问 ubuntu 机器。我们可以从登录屏幕访问所有 Windows 机器。但是我们无法从登录屏幕访问 Ubuntu 机器。有一些方法,但我不知道细节。有人可以解决这个问题吗?

Nat*_*man 10

最好的办法是安装xrdp 安装 xrdp. 安装后,您可以使用 RDP 客户端连接到计算机 - 然后将提示您输入凭据,就像在登录屏幕上一样。


Tri*_*onX 7

总的来说,我会推荐x11vnc.

TL; 博士

apt-get -y install x11vnc
x11vnc -storepasswd
Run Code Online (Sandbox Code Playgroud)

输入您的密码,它默认~/.vnc/passwd 以不安全的加密形式保存因为密钥是已知的,所以它可以被解密。.. 用文件系统权限保护它)

chmod 600 ~/.vnc/passwd
Run Code Online (Sandbox Code Playgroud)

在本地保存我的帮助脚本:

mkdir ~/bin/
curl https://gist.githubusercontent.com/trinitronx/76d2bf98489e5e3e84fa/raw/53885d87f91320b574ca4f7d609e4bb268274f68/start_x11vnc.sh  > ~/bin/start_x11vnc.sh && chmod +x ~/bin/start_x11vnc.sh
Run Code Online (Sandbox Code Playgroud)

从您的 VNC 客户端主机:

ssh -f  -L 5900:127.0.0.1:5900 -p 22 youruser@your-ubuntu-host.example.com '~/bin/start_x11vnc.sh && sleep 10'
Run Code Online (Sandbox Code Playgroud)

或者,从您的 VNC 服务器主机,运行:

~/bin/start_x11vnc.sh
Run Code Online (Sandbox Code Playgroud)

通过终端(或启动它作为与守护程序-forever作为的init.d服务暴发户服务systemd单元,或根据需要)

现在从您的客户端主机运行您选择的 VNC 客户端,将其指向:127.0.0.1:5900,使用上面保存的密码登录。

使用X11“魔法饼干”

大多数X 显示管理器(如GDMXDMKDM)启动初始 X11 服务器并使用MIT Magic Cookie对其进行身份验证。根据您的显示管理器,可以在不同位置之一找到魔法 cookie 。

通过使用以下脚本找到魔术 cookie,我很幸运在 Ubuntu GDM 登录屏幕*NOTE1上打开了 VNC 会话:

apt-get -y install x11vnc
x11vnc -storepasswd
Run Code Online (Sandbox Code Playgroud)

我可以start_x11vnc.sh随时通过 SSH启动这个脚本(我称之为)......甚至在通过gdm登录屏幕登录之前。它启动一个x11vnc服务器,然后我可以通过SSH 隧道连接到该服务器。(使用ssh -L 5900:127.0.0.1:5900或添加LocalForward 5900 127.0.0.1:5900到您的主机在 中的条目~/.ssh/config)。

注意 1:在一些新发行版中,例如 Ubuntu >= 17.10,GDM 登录 X 会话显示与登录用户的 X 会话显示完全分开。因此,需要先连接到GDM X会话,登录...,最后断开并重新连接到新启动的X会话。为什么他们现在这样做是个谜,但它打破了这个脚本的旧版本。