如何使用GUI连接到Google Compute Engine虚拟服务器?

Ass*_*ast 6 x11 ssh x11-forwarding google-compute-engine

我正在测试Google Compute Engine,我用Ubuntu OS创建了一个VM.当我连接到它时,通过单击此Connect SSH按钮,它将打开一个控制台窗口.

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

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

Mat*_*len 5

您需要将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
Run Code Online (Sandbox Code Playgroud)

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

$ sudo /etc/init.d/sshd restart
Run Code Online (Sandbox Code Playgroud)

配置客户端

$ vim ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)

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

Host example.com
    ForwardX11 yes
Run Code Online (Sandbox Code Playgroud)

转发X11

$ ssh -X -C example.com
...
$ gedit example.txt
Run Code Online (Sandbox Code Playgroud)

值得信赖的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.


Ara*_*chi 5

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

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

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

gcloud compute --project "project_name" ssh --zone "project_zone" "instance_name"
Run Code Online (Sandbox Code Playgroud)

3.安装必要的包

sudo apt update && sudo apt upgrade
sudo apt-get install xorg lxde vnc4server
Run Code Online (Sandbox Code Playgroud)

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

vncserver
sudo echo "lxpanel & /usr/bin/lxsession -s LXDE &" >>  ~/.vnc/xstartup
Run Code Online (Sandbox Code Playgroud)

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

sudo reboot
Run Code Online (Sandbox Code Playgroud)

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

cloudshell download-files $HOME/.ssh/google_compute_engine
Run Code Online (Sandbox Code Playgroud)

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

ssh -L 5901:localhost:5901 -i "google_compute_engine" username@instance_external_ip -v -4
Run Code Online (Sandbox Code Playgroud)

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

vncserver -geometry 1280x800  
Run Code Online (Sandbox Code Playgroud)

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


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

netstat -na | grep '[:.]5901'
tail -f /home/user_id/.vnc/instance-1:1.log
Run Code Online (Sandbox Code Playgroud)

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

sudo vncserver -kill :1 && vncserver
Run Code Online (Sandbox Code Playgroud)

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

ls $HOME/.ssh/
google_compute_engine  google_compute_engine.pub  google_compute_known_hosts
Run Code Online (Sandbox Code Playgroud)

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