![如何将 Google Remote 添加到 vast 上的无头 Docker 中](https://linux22.com/image/923985/%E5%A6%82%E4%BD%95%E5%B0%86%20Google%20Remote%20%E6%B7%BB%E5%8A%A0%E5%88%B0%20vast%20%E4%B8%8A%E7%9A%84%E6%97%A0%E5%A4%B4%20Docker%20%E4%B8%AD.png)
我想为我在 vastai 上租用的无头 docker 添加 GUI。它使用 cuda 16.04 docker 镜像
我从更新和升级开始,然后
我遵循了本指南https://cloud.google.com/solutions/chrome-desktop-remote-on-compute-engine选定的 xfce
当我运行脚本时,我得到了建议的代码
DISPLAY= /opt/google/chrome-remote-desktop/start-host --code="mycodes" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=$(hostname)
输出:拒绝运行 /opt/google/chrome-remote-desktop/start-host
如何将用户更改为能够运行 Chrome 远程桌面的用户
我已添加用户
adduser gamer
usermod -aG chrome-remote-desktop gamer
我尝试以用户身份运行它
runuser -l gamer -c 'DISPLAY= /opt/google/chrome-remote-desktop/start-host --code="mycodes" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=$(hostname)'
输出 [0429/133320.745672:ERROR:cert_verify_proc_builtin.cc(559)] 没有用于执行 AIA 追踪的 net_fetcher。无法启动主机:OAuth 错误。
答案1
我遇到了同样的问题:无法启动主机:OAuth 错误。
它不起作用,因为 Google 更改了某些内容,现在 Chrome 远程桌面不支持 OSLogin 功能 - 此信息显示在文档中。要解决此问题,只需在实例上禁用 OSLogin。
PS. 但 Chrome 远程桌面仍然可以通过 IAP 工作,因此您的实例不需要外部 IP。
答案2
好吧,我成功了。我不确定之前哪里出错了,但最终一切都解决了。我写了一篇博客文章。您可以在链接中查看完整说明http://cryptolabs.co.za/2020/04/30/how-to-rendering-blender-eevee-on-a-headless-system/
我使用这个 bashscript 安装了我需要的东西。
$bash -c 'apt -y update; apt-get install -y --no-install-recommends; apt-get install -y gdebi; apt-get install -y gnupg2; apt-get install -y fonts-noto-cjk; apt-get install -y pulseaudio; apt-get install -y supervisor; apt-get install -y x11vnc; apt-get install -y fluxbox; apt-get install -y eterm; wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb; dpkg --install chrome-remote-desktop_current_amd64.deb; wget https://dl.google.com/linux/linux_signing_key.pub; wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb; dpkg --install chrome-remote-desktop_current_amd64.deb; apt-key add /tmp/linux_signing_key.pub; dpkg --install google-chrome-stable_current_amd64.deb; apt install --assume-yes --fix-broken; apt-get clean; rm -rf /var/cache/* /var/log/apt/* /var/lib/apt/lists/*;useradd -m -G chrome-remote-desktop,pulse-access chrome;usermod -s /bin/bash chrome; ln -s /crdonly /usr/local/sbin/crdonly; ln -s /update /usr/local/sbin/update;mkdir -p /home/chrome/.config/chrome-remote-desktop;mkdir -p /home/chrome/.fluxbox'
接下来我们安装Xfce桌面环境。
$echo ' \n\
session.screen0.toolbar.visible: false\n\
session.screen0.fullMaximization: true\n\
session.screen0.maxDisableResize: true\n\
session.screen0.maxDisableMove: true\n\
session.screen0.defaultDeco: NONE\n\
' >> /home/chrome/.fluxbox/init
$chown -R chrome:chrome /home/chrome/.config /home/chrome/.fluxbox
$DEBIAN_FRONTEND=noninteractive
apt update
apt upgrade
#apt install --assume-yes xfce4 desktop-base
$bash -c 'echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > /etc/chrome-remote-desktop-session'
$apt install --assume-yes xscreensaver
为了确保万无一失,我们希望停止运行 lightdm.serves。您的实例没有连接显示器,因此显示管理器服务不会启动
$systemctl disable lightdm.service
配置并启动 Chrome 远程桌面服务
要启动远程桌面服务器,您需要拥有用于连接该服务器的 Google 帐户的授权密钥。
1 在本地计算机上,使用 Chrome 浏览器,转到 Chrome 远程桌面命令行设置页面:https://remotedesktop.google.com/headless
2 如果您尚未登录,请使用 Google 帐户登录。此帐户将用于授权远程访问。
3 在“设置另一台计算机”页面上,单击“开始”。
- 在下载并安装 Chrome 远程桌面页面上,点击下一步。
5 点击授权。您需要允许 Chrome 远程桌面访问您的帐户。如果您同意,页面将显示 Debian Linux 的命令行,如下所示:
runuser -l chrome -c 'DISPLAY= /opt/google/chrome-remote-desktop/start-host --code="4/yourcode" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=VastInstance'
根据要求输入密码,您应该会看到输出“主机准备好接收连接”。
连接到实例
您可以使用 Chrome 远程桌面网络应用程序连接到该实例。
- 在本地计算机上,转到 Chrome 远程桌面网站。https://remotedesktop.google.com/
- 单击“远程访问”
- 如果您尚未登录 Google,请使用设置 Chrome 远程桌面服务时所用的同一 Google 帐号登录。您会在远程设备列表中看到您的新实例。