从命令行为 Gnome 启用远程桌面?

M S*_*M S 7 fedora gnome vnc remote-desktop

我正在尝试设置一些自动化脚本来设置 Linux 环境。我想启用远程桌面共享,而无需用户实际使用 GUI 来执行此操作。我的计划是编写一个批处理脚本,如果可能的话,它可能会编辑一些文件以自动执行此操作。

我在 Gnome 上使用 Fedora 16。

我想实现以下目标:http : //docs.fedoraproject.org/en-US/Fedora/13/html/User_Guide/chap-User_Guide-Sharing_your_desktop.html

任何关于编辑什么文件的提示将不胜感激。

IBr*_*IBr 9

如果我理解正确:您想按原样远程共享 gnome 或其他环境,那么实现此目的的最简单方法是使用 x11vnc。它在用户登录后共享真实的 X11 服务器:

x11vnc -display :0
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望在登录后运行 vnc 服务器,您可以使用此脚本进行自动化:

#!/bin/bash
/usr/bin/x11vnc -nap -wait 50 -noxdamage -passwd PASSWORD -display :0 -forever -o /var/log/x11vnc.log -bg
Run Code Online (Sandbox Code Playgroud)

您可以将此脚本放在 gnome 的启动程序中,以便在用户登录时自动运行。请注意,此脚本并不安全,因为任何可以读取文件的人都可以清楚地看到会话 PASSWORD 变量,并且任何知道密码的人都可以连接到 vnc 会话(在这种情况下,密码是远程连接时询问的 8 个字符)。如果您想要更安全的连接搜索如何进行 vnc ssh 隧道。


drs*_*drs 8

我最喜欢的远程连接方法是使用 vino。它类似于 x11vnc,但我发现它更容易设置(尽管我通常使用 GUI)。启用 Vino 后,gnome 被设置为每次启动时接受活动会话(当前登录的会话)的 vnc 连接。在屏幕上打开的任何窗口或应用程序都可以在 vnc 连接中查看。

在正常情况下(例如,通过 GUI),通过运行来设置它就足够了

$ vino-preferences
Run Code Online (Sandbox Code Playgroud)

在没有 GUI 的情况下,必须使用gsettings. 就像是

$ gsettings set org.gnome.Vino enabled true
$ gsettings set org.gnome.Vino view-only true
$ gsettings set org.gnome.Vino authentication-methods "['vnc']"
$ gsettings set org.gnome.Vino prompt-enabled false
$ gsettings set org.gnome.Vino require-encryption true
Run Code Online (Sandbox Code Playgroud)

将启用具有理智值的远程桌面。您可以通过打开dconf-editor并导航到来查看选项的完整列表及其效果的说明desktop.gnome.remote-access

如果您的计算机有多个用户,则需要为每个用户设置 Vino。


要连接到远程会话,您可以使用任何标准的 vnc 客户端。但是,您必须从路由器的固件将端口 5900 转发到要连接的计算机。或者,如果您还允许通过 ssh 连接到这些计算机,则通过 ssh 隧道使用 vnc 可能更容易、更安全。从您的本地机器:

ssh -L 5900:localhost:5900 <remote server>
Run Code Online (Sandbox Code Playgroud)

然后打开一个 vnc 客户端并连接到 127.0.0.1:5900 并使用远程服务器的用户名和密码登录。