小萌博客 - 既是个人原创，又是汇聚分享 - immoe.org - Oracle Cloud VNC
全篇转载自 @如有乐享 ，由 小萌 进行编辑，本文仅作存档使用前几天Oracle Cloud注册成功率又放水！又有一批网友上车了！什么情况下会用到 VNC ？比如服务器无法正常启动，SSH无法正常登陆到服务器，这个时候需要利用VNC上服务器上排查一下问题！常的场景：1）DD 系统服务器失联。 2）SSH密码忘记。本文主要分为2部分。第一部分是利用Linux，第二部分是利用Windows 10。其中Linux相对来说简单一些！Linux版这部分操作使用的是利用CentOS 7 + VNCviewer绿色版！准备工作1）VNC链接工具，【 VNC Connect 】或者【VNCviewer绿色版】。2）准备一台Linux服务器。生成SSH KEY1）登陆Linux服务器输入命令！//生成SSH KEY ssh-keygen2）命令执行效果如下！[root@localhost ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:QfclO+AvXZ/O6vGNfzo4P2pftiHRoKG2fgc5p9bvu1o root@localhost.localdomain The key's randomart image is: +---[RSA 2048]----+ | . o . . | | . o o + | | . ..+.. | | ..oooo..| | So..+. o.| | . .= .+ | | . *+ Eo| | . ++oO+=| | .o.+OO%*| +----[SHA256]-----+ [root@localhost ~]#3）获取SSH公钥：cat ~/.ssh/id_rsa.pub （公钥后面会用到）SSH私钥位置： ~/.ssh/id_rsa配置控制台1）登陆Oracle Cloud控制台，打开实例详细信息 - 控制台连接 - 点击【创建控制台链接】2）将 SSH公钥 复制到SSH密钥输入框内，保存！3）等到链接的状态变成【活动】，点击【⋮】 - 【复制Linux/Mac的VNC连接】创建SSH代理1）需要在Linux服务器上将端口开放，默认使用的端口是5900，建议不要使用这个端口，我已经将端口换成 8000！将上面复制的内容中的 5900 换成 8000 （如果8000被占用，就换其他的）ssh -o ProxyCommand='ssh -W %h:%p -p 443 ocid1.instanceconsoleconnection.oc1.ap-seoul-1.anuwgljr2ano4pqcwnhqj5tw4wgrxxxo6ba@instance-console.ap-seoul-1.oraclecloud.com' -N -L localhost:5900:ocid1.instance.oc1.ap-seoul-1.anuwgljr2ano4pqcpkcs63uecyrs5bqmhsblzgtkygtjvhb666kytctumtoa:5900 ocid1.instance.oc1.ap-seoul-1.anuwgljr2ano4pqcpkcs63uecyrs5xxxkytctumtoa2）将命令粘贴到Linux服务器命令行执行。注意：第一次执行命令有2个位置，需要输入 yes 回车！VNC连接服务器使用VNC 客户端链接即可！然后就成功了！！服务器IP:8000Windows版这部分操作使用的是 Windows 10 + VNCviewer绿色版准备工作1）VNC链接工具，【 VNC Connect 】或者【VNCviewer绿色版】。2）Windows 10 需要安装 Git 和 PuTTY（下载地址参考附录部分） 提醒：PuTTY须安装到C:\Program Files\ 生成SSH KEY这里严重不建议使用 PuTTY 生成 SSH KEY！ 1）利用Git Bash生成！打开菜单 - Git - Git Bash2）执行命令生成SSH 密钥！//生成SSH KEY ssh-keygen3）密钥默认存放位置：C:\Users\ruyo\.ssh\ 目录。（其中ruyo为当前操作系统登陆用户的用户名）SSH公钥：id_rsa.pubSSH私钥：id_rsa配置控制台这里和Linux版的操作基本一样，将SSH公钥复制进去！等到链接的状态变成【活动】，点击【⋮】 - 【复制Windows的VNC连接】SSH私钥转换由于Oracle Cloud VNC 识别不了上面的SSH私钥，需要利用下面的工具转一下！1）打开菜单 - PuTTY - PuTTYgen2）打开的界面点击【Load】，选择上面生成的SSH私钥。如图操作，选择 id_rsa ，出现提示框点击确定即可！3）点击【Save private key】，将转换后的私钥保存到文件目录（ 记住该文件目录后面要用到！ ）。PS：尽量要保存到 .ssh 目录中，命名要ruyo.ppk (后面有一键生成命令必须这样！)VNC命令重构直接复制处理的命令，执行上有一些问题。这里需要将命令修改一下！主要是替换以下内容：1）替换 plink.exe 文件目录2）替换PPK文件目录3）将1条命令 转成 2条命令来执行原始命令：Start-Job { Echo N | plink.exe -i $env:homedrive$env:homepath\oci\console.ppk -N -ssh -P 443 -l ocid1.instanceconsoleconnection.oc1.ap-seoul-1.anuwgljr2ano4pqcwnhqj5tw4wgrpmkuib4yah2naclpvcemkr27ajq5o6ba -L 5905:ocid1.instance.oc1.ap-seoul-1.anuwgljr2ano4pqcpkcs63uecyrs5bqmhsblzgtkygtjvhb666kytctumtoa:5905 instance-console.ap-seoul-1.oraclecloud.com }; sleep 5; plink.exe -i $env:homedrive$env:homepath\oci\console.ppk -N -L 5900:localhost:5900 -P 5905 localhost -l ocid1.instance.oc1.ap-seoul-1.anuwgljr2ano4pqcpkcs63uecyrs5bqmhsblzgtkygtjvhb666kytctumtoa转换后命令：第一条命令: cd 'C:\Program Files\PuTTY\' .\plink.exe -i $env:homedrive$env:homepath\.ssh\ruyo.ppk -N -ssh -P 443 -l ocid1.instanceconsoleconnection.oc1.ap-seoul-1.anuwgljr2ano4pqcwnhqj5tw4wgrpmkuib4yah2naclpvcemkr27ajq5o6ba -L 5905:ocid1.instance.oc1.ap-seoul-1.anuwgljr2ano4pqcpkcs63uecyrs5bqmhsblzgtkygtjvhb666kytctumtoa:5905 instance-console.ap-seoul-1.oraclecloud.com 第二条命令: cd 'C:\Program Files\PuTTY\' .\plink.exe -i $env:homedrive$env:homepath\.ssh\ruyo.ppk -N -L 5900:localhost:5900 -P 5905 localhost -l ocid1.instance.oc1.ap-seoul-1.anuwgljr2ano4pqcpkcs63uecyrs5bqmhsblzgtkygtjvhb666kytctumtoa一键转换：https://51.ruyo.net/test/oracle_cloud_vnc_convert.html 使用方法：将原始命令粘贴到最大的文本框内，点击生成即可！源码右键可见！启动plink代理1）我们需要启动2个 PowerShell （Win + X 或者 开始菜单鼠标右键）2）在2个 PowerShell 分别执行 2条VNC命令。提醒：命令执行后，显示 Access granted. Press Return to begin session. 需要再按一次回车！！ VNC连接服务器使用VNC 客户端链接即可！然后就成功了！！localhost:5900这里我们使用默认端口基本上没啥太大问题！附录Git下载地址：https://git-scm.com/downloadsPuTTY下载地址：https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html最后总结本文有几个疑惑不知道原因，知道的大佬可以留言指导一下！1）为什么 PuTTY 生成的 SHH 密钥 无法识别？（怀疑是密钥类型或者长度） 2）直接复制VNC原始命令不能执行？（原命令有一些错误不显示，命令有2步确认的操作？）以上博主没有做深入的摸索！参考：https://www.hostloc.com/thread-595146-1-1.htmlhttps://luotianyi.vc/4199.html