一、准备密钥

首先准备一台Linux系统的VPS用于转发及认证VNC,在SSH中执行ssh-keygen,生成当前系统的公钥及私钥;所有的选项默认即可,这里为了方便用不着设置密码,毕竟不是作为公开使用的。在生成完成后将/root/.ssh/目录下id_rsa.pub保存下来,将其中的公钥内容复制下来。
1

二、设置VNC

进入甲骨文的控制台,打开实例的面板,在左下角找到控制台连接,点击创建控制台连接。
14
选择粘贴SSH密钥,将刚才生成的id_rsa.pub中的公钥内容粘贴进去,当然直接把.pub上传上去也可以。
2020-08-01_15-22-55
创建好后,选择菜单中的复制Linux/Mac的VNC连接,将复制出来的内容粘贴在文本编辑器中。
15

三、开启VNC

到刚才提取公钥的Linux VPS上面,将先前导出的VNC连接配置文件中的监听地址localhost:5900改为0.0.0.0:5900,监听地址也可以是ifconfig获取到的本机网卡IP。
2
随后你可以选择直接复制到ssh的console去执行,也可以放进一个.sh脚本中执行,效果是相同的;执行后可以看到由于是导出公钥的VPS,首次连接两次确认的询问直接输入yes即可,无需你指定私钥即可通过系统的私钥完成认证。
image-1711855468123
最后在安全组及VPS的防火墙上放行5900端口,检测到端口已被占用后即可。
如果出现

Unable to negotiate with 130.61.0.255 port 443: no matching host key type found. Their offer: ssh-rsa
kex_exchange_identification: Connection closed by remote host
Connection closed by UNKNOWN port 65535

需要使用文本编辑器打开配置文件,

# 系统级配置文件
sudo nano /etc/ssh/ssh_config
# 或用户级配置文件
nano ~/.ssh/config

在配置文件中,您需要添加或编辑以下参数:

Host *
    HostKeyAlgorithms +ssh-rsa
    PubkeyAcceptedKeyTypes +ssh-rsa

重启SSH服务:

sudo systemctl restart sshd

四、连接VNC
前往RealVNC的网站上下载VNC Connect这个软件(点击前往),支持的平台很多,亦或者其他的VNC工具都是可以的。
image-1711855574968
在软件中直接输入你的Linux VPS的IP:5900,回车即可开始连接。
4
其中的不安全报错直接忽略即可,随后可以看到VNC的窗口已正常打开,随后该怎么处理问题就怎么处理。
5

交流群