如何通过SSH设置远程桌面共享?

ger*_*rky 58 ssh vnc openssh vncviewer

有没有办法通过 SSH 查看(和控制)远程桌面?我将无法物理访问远程主机。

Khu*_*lam 64

方法一:

这可以通过 vino vnc server & remmina 来实现(两者都是 ubuntu 的默认设置;如果没有通过运行安装它sudo apt-get install remmina)。然后在终端提示符下从本地计算机运行以下命令:

  1. ssh -Y gman@remote. 使用受信任的X11转发,否则将无法正常工作

  2. vino-preferences. 它将打开葡萄酒偏好。

    葡萄酒偏好

  3. 也单击configure network automatically to accept connection但是不要输入任何密码,它的 base64 编码。然后点击关闭。然后运行:

    sudo -s
    
    export DISPLAY=:0.0
    
    xhost +
    
    /usr/lib/vino/vino-server & 
    
    Run Code Online (Sandbox Code Playgroud)

    它将启动vino服务器。

  4. 从服务器注销:

    xhost -
    
    Press CTRL+C twice
    
    exit
    
    exit
    
    Run Code Online (Sandbox Code Playgroud)
  5. 然后打开remminavnc在协议下选择。

    basic选项卡下将服务器地址放在server字段中。

    在 ssh 选项卡上单击enable ssh tunnel。在 下ssh authentication,它可能是passwordpublic key

    remmina-偏好

    点击保存。然后双击connection-name(如图所示的home-desktop)开始浏览远程桌面。


方法二:

x11vnc是一个简单的 VNC 服务器,您不必弄乱 Gnome 设置或 500 防火墙,只需安装x11vnc在您所有的计算机上(使用 puppet 或您用于批量控制的任何东西)。

然后从您的本地计算机运行:

ssh user@host -L 5900:localhost:5900 "x11vnc -display :0 -noxdamage"
Run Code Online (Sandbox Code Playgroud)

显然是交换user@host远程计算机的用户名和主机名/IP。

然后使用您选择的 VNC 客户端连接到localhost:5900. SSH 命令在远程计算机上启动一个 vnc 服务器,然后通过 SSH 隧道返回该端口。您不必打开任何端口(只要您已经可以使用 SSH)。

如果您的计算机具有有趣的显示设置,则最好-display :0在 SSH 命令中去掉该段。x11vnc然后将自动尝试找到正确的显示器。


来源:askubuntu

  • 您的“方法 2”非常适合远程快速访问物理​​显示器,无需任何特殊的永久设置。当我执行命令时,我需要添加 -auth 参数,如错误消息中所述,但否则效果很好。谢谢! (3认同)
  • 根据 [Arch wiki](https://wiki.archlinux.org/index.php/Vino),“vino-preferences”已被删除,并且 Vino 使用“gnome-control-center”进行配置。不幸的是,gnome-control-center 无法通过 SSH 为我工作。 (3认同)
  • 在我的情况下,我收到错误:“无效的 MIT-MAGIC-COOKIE-1 keyxhost:在执行 `xhost +` 后无法打开显示“:0.0”`。关于如何纠正这个问题的任何想法? (2认同)

jtd*_*jtd 11

解决方案概述

假设您已经OpenSSH Server在您的主机上设置了一个,您必须首先在您的主机上启用桌面控制。如果您可以先在本地主机上启用桌面控制,请前往 1a。如果您必须首先在主机上远程启用桌面控制,请前往 1b。

接下来在您的客户端计算机上创建一个远程桌面客户端配置文件,以便通过 SSH 隧道连接到主机并最终通过 SSH 隧道查看和控制主机的桌面。

1a. 本地启用主机远程控制

在主机上执行以下操作:

vino-preferences
Run Code Online (Sandbox Code Playgroud)
  • vino-preferences 也在 Dash 下 Desktop Sharing

在此处输入图片说明

  1. 打钩 Allow other users to view your desktop
  2. 打钩 Allow other users to control your desktop
  3. 打钩 Require the user to enter this password
  4. 输入一个难以猜测的密码
  5. 关闭

1b. 远程启用对主机的远程控制

在客户端机器上执行以下操作,替换123.123.12.3为您主机的 IP 地址:

ssh -Y 123.123.12.3
Run Code Online (Sandbox Code Playgroud)
  • -Y,启用受信任的 X11 转发。受信任的 X11 转发不受 X11 安全扩展控制的约束。
vino-preferences
Run Code Online (Sandbox Code Playgroud)
  • vino-preferences 也在 Dash 下 Desktop Sharing

在此处输入图片说明

  1. 打钩 Allow other users to view your desktop
  2. 打钩 Allow other users to control your desktop
  3. 打钩 Require the user to enter this password
  4. 输入一个难以猜测的密码
  5. 关闭

在您的客户端计算机上创建远程桌面客户端配置文件

在客户端机器上执行以下操作:

remmina
Run Code Online (Sandbox Code Playgroud)
  • remmina也在Dash下 Remmina Remote Desktop Client

Ctrl+N或连接 > 新建

在此处输入图片说明

  1. 填写您的 IP 地址 [123.123.12.3] Server
  2. 切换到SSH选项卡

在此处输入图片说明

  1. 打钩 Enable SSH Tunnel
  2. 将您的桌面客户端指向您的非标准 SSH 端口
  3. 设置你的SSH Authentication <username>和模式
  4. 连接

查看和控制主机

在客户端计算机上,当要求<username>输入 的密码时,输入该密码以创建 SSH 隧道。当要求输入 VNC 密码时,请输入您之前在主机中输入的密码。

如果在这一步成功,您现在应该可以通过 SSH 隧道从您的客户端计算机查看和控制主机的桌面。