10

我正在测试一个谷歌计算引擎,我用 Ubuntu 操作系统创建了一个虚拟机。当我连接到它时,通过单击此Connect SSH按钮,它会打开一个控制台窗口。

那是你得到的联系吗​​?

如何打开带有 GUI 的真实屏幕?我不想要控制台。

4

4 回答 4

15

谷歌自己的更好的解决方案:

https://medium.com/google-cloud/linux-gui-on-the-google-cloud-platform-800719ab27c5

于 2015-09-07T10:15:05.080 回答
7

您需要将 X11 会话从 VM 转发到本地计算机。这在 Unix 和 Linux 堆栈站点之前已经介绍过:

https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-from-ubuntu-machine

由于您要连接到预期运行计算任务的服务器,因此很可能没有安装 X11 服务器。您可能需要安装 X11 和类似的。您可以按照此处的说明进行操作:

https://help.ubuntu.com/community/ServerGUI

由于我最近需要这样做,所以我将在这里简要写下所需的更改:

配置服务器

$ sudo vim /etc/ssh/sshd_config

确保X11Forwarding yes存在。如果更改设置,请重新启动 ssh 守护程序:

$ sudo /etc/init.d/sshd restart

配置客户端

$ vim ~/.ssh/config

确保ForwardX11 yes主机存在。例如:

Host example.com
    ForwardX11 yes

转发 X11

$ ssh -X -C example.com
...
$ gedit example.txt

可信 X11 转发

http://dailypackage.fedorabook.com/index.php?/archives/48-Wednesday-Why-Trusted-and-Untrusted-X11-Forwarding-with-SSH.html

如果应用程序在不可信转发方面遇到问题,您可能希望启用可信转发。

您可以通过ForwardX11Trusted yes~/.ssh/config文件中使用来永久启用此功能。

-Y您可以通过使用参数代替参数来为单个连接启用此功能-X

于 2014-12-01T16:03:04.927 回答
4

这些说明用于使用 LXDE 设置 Ubuntu 16.04 LTS(我使用 SSH 端口转发而不是在 VM 实例防火墙中打开端口 5901)

1. 使用GCP Console构建一个新的 Ubuntu VM 实例

2. 使用google cloud shell连接到您的实例

gcloud compute --project "project_name" ssh --zone "project_zone" "instance_name"

3.安装必要的包

sudo apt update && sudo apt upgrade
sudo apt-get install xorg lxde vnc4server

4. 设置 vncserver(您将被要求提供 vncserver 的密码)

vncserver
sudo echo "lxpanel & /usr/bin/lxsession -s LXDE &" >>  ~/.vnc/xstartup

6. 重新启动您的实例(这会将您返回到 Google Cloud Shell 提示符)

sudo reboot

7. 使用 google cloud shell 下载文件工具下载自动生成的私钥,存储在$HOME/.ssh/google_compute_engine并保存在本地机器*****

cloudshell download-files $HOME/.ssh/google_compute_engine

8. 使用您的私钥(在第 7 步下载)从您的本地计算机 SSH 到您的 VM 实例(转发端口 5901)

ssh -L 5901:localhost:5901 -i "google_compute_engine" username@instance_external_ip -v -4

9. 在你的虚拟机实例中运行 vncserver

vncserver -geometry 1280x800  

10. 在您本地机器的远程桌面客户端(例如 Remmina)中,将服务器设置为localhost:5901并将协议设置为VNC


注意 1:要检查 vncserver 是否工作正常,请使用:

netstat -na | grep '[:.]5901'
tail -f /home/user_id/.vnc/instance-1:1.log

注意 2:要重新启动 vncserver,请使用:

sudo vncserver -kill :1 && vncserver

***** 首次通过 Google Cloud Shell 连接时,公钥和私钥会自动生成并存储在 Cloud Shell 实例中$HOME/.ssh/

ls $HOME/.ssh/
google_compute_engine  google_compute_engine.pub  google_compute_known_hosts

公钥应添加到home/*user_id*/.ssh/authorized_keys VM 实例中(当您第一次从谷歌云 shell 向 VM 实例 SHH 时自动完成,即在步骤 2 中)您可以在实例元数据中确认这一点

于 2018-05-23T16:38:21.970 回答
2

Chrome 远程桌面允许您从本地计算机或移动设备远程访问具有图形用户界面的应用程序。对于这种方法,您无需打开防火墙端口,而是使用您的 Google 帐户进行身份验证和授权。

查看此谷歌教程以将其与 Compute Engine 一起使用:https ://cloud.google.com/solutions/chrome-desktop-remote-on-compute-engine

于 2019-07-10T04:38:18.403 回答