注意:
- 此教程需要访问 Oracle Cloud。要注册免费账户,请参阅开始使用 Oracle Cloud Infrastructure Free Tier 。
- 它使用 Oracle Cloud Infrastructure 身份证明、租户和区间示例值。完成实验室时,请将这些值替换为特定于云环境的值。
替换 Oracle Cloud VMware Solution ESXi 主机的 SSH 密钥
简介
Oracle Cloud VMware Solution 提供客户管理的原生基于 VMware 的云环境,使用熟悉的 VMware 工具实现完全控制。但是,如果用于访问 ESXi 主机的 SSH 密钥丢失,则需要另一种方法来重新获取访问权限。本教程概述了为 ESXi 主机启用基于密码的登录以及替换 SSH 密钥所涉及的任务。
Oracle Cloud VMware Solution (OCVS) SDDC 计算实例和 ESXi 主机的 SSH 访问通常使用与预配期间提供的公钥对应的私钥来实现。但是,如果专用 SSH 密钥丢失或不可用,则无法直接通过 SSH 访问 ESXi 主机。在这种情况下,解决方法是访问 ESXi 主机的直接控制台用户界面 (Direct Console User Interface,DCUI),启用基于口令的登录,然后通过 SSH 连接到 ESXi 主机以替换授权密钥部分中的公共密钥。验证新公钥是否按预期工作后,您可以禁用基于密码的登录以提高安全性。
目标
- 通过临时启用基于密码的登录来替换 Oracle Cloud VMware Solution ESXi 主机的丢失 SSH 密钥。
先决条件
-
为 ESXi 主机创建新的 SSH 密钥对(公钥和私钥),并根据需要安全地保存密钥。
-
配置访问 Oracle Cloud VMware Solution SDDC 所需的权限。
-
配置适当的权限来管理计算实例以创建实例控制台连接。
-
安装 VNC Viewer 。
任务 1:创建与 ESXi 主机的控制台连接
-
打开 Oracle Cloud 控制台导航菜单,依次单击计算和实例。
-
选择 Oracle Cloud VMware Solution SDDC 的第一个 ESXi 主机。
-
单击控制台连接。
-
单击创建本地连接。
-
为控制台连接生成 SSH 密钥对或上载您自己的公共密钥,在此示例中,我们将创建新的密钥对。
-
单击创建控制台连接,等待连接的状态更改为活动。
任务 2:访问 ESXi 主机的控制台连接或 DCUI
控制台连接更改为活动状态后,请完成以下步骤。
-
单击连接右侧的 kebab 图标,然后单击复制 Windows 的 VNC 连接。
注:如果使用的是 Linux/Mac 计算机,请按照相应的步骤操作。
-
将复制的命令粘贴到文本编辑器。
Start-Job { Echo N | plink.exe -i $env:homedrive$env:homepath\oci\console.ppk -N -ssh -P 443 -l ocid1.instanceconsoleconnection.oc1.ap-melbourne-1.anwwkljxyzxyzxyzxyzhatrpp5gdhi75lunwazur6vlkost37m2rxa -L 5905:ocid1.instance.oc1.ap-melbourne-1.anwwkljrxyzxyzxyzxyzoua6cxxfbtqbg2tvhkogyusd6scnb2wfdnfcfmzq:5905 instance-console.ap-melbourne-1.oci.oraclecloud.com }; sleep 5; plink.exe -i $env:homedrive$env:homepath\oci\console.ppk -N -L 5900:localhost:5900 -P 5905 localhost -l ur6vlkost37m2rxa
-
替换以下命令中的两个
$env:homedrive$env:homepath\oci\console.ppk
部分以指向您的私钥。Start-Job { Echo N | plink.exe -i C:\Keys\ssh-key-2022-06-11-converted.ppk -N -ssh -P 443 -l ocid1.instanceconsoleconnection.oc1.ap-melbourne-1.anwwkljxyzxyzxyzxyzhatrpp5gdhi75lunwazur6vlkost37m2rxa -L 5905:ocid1.instance.oc1.ap-melbourne-1.anwwkljrxyzxyzxyzxyzoua6cxxfbtqbg2tvhkogyusd6scnb2wfdnfcfmzq:5905 instance-console.ap-melbourne-1.oci.oraclecloud.com }; sleep 5; plink.exe -i C:\Keys\ssh-key-2022-06-11-converted.ppk -N -L 5900:localhost:5900 -P 5905 localhost -l ur6vlkost37m2rxa
-
启动 Windows PowerShell 或终端,运行以下命令并按照提示开始会话。
-
连接启动后,打开 VNC Viewer 并使用
localhost:localport
命令与控制台建立连接。对于本教程,我们将使用 localhost:5900 。 -
建立连接后,您可以看到 DCUI。
-
按 ALT+F1 可访问控制台,使用 opc 用户和 SDDC 密码登录。
任务 3:为 ESXi 主机启用基于口令的验证
-
要为 opc 用户启用基于口令的登录,请编辑
/etc/ssh/sshd_config
文件。 -
将 PasswordAuthentication 设置更改为 yes 并保存文件。
-
通过运行以下命令重新装入 SSH 服务:
/etc/init.d/SSH restart
。 -
为 opc 用户配置密码。
任务 4:在 ESXi 主机上添加新公钥
-
使用您在上一步中配置的密码通过 SSH 连接到 ESXi 主机。
-
编辑位于
/etc/ssh/keys-opc/
的authorized_keys
文件。 -
替换现有公钥或添加新的公钥。
任务 5:使用新的 SSH 密钥对测试访问
-
使用新的 SSH 密钥对建立到 ESXi 主机的新 SSH 会话。
任务 6:禁用基于密码的登录
在任务 5 中使用新的 SSH 密钥测试访问后,出于安全原因,必须禁用基于密码的登录。
-
编辑
/etc/ssh/sshd_config
文件并将 PasswordAuthentication 设置更改为 no 。 -
重新启动 SSH 服务。
-
验证基于密码的登录是否不起作用。
任务 7:启用持久性 SSH 公共密钥
要确保配置即使在 ESXi 主机重新引导后仍然存在,请执行以下步骤将新公共密钥添加到 authorized_keys
文件:
-
在继续之前,如果尚未建立到 ESXi 主机的 SSH 连接,请建立该连接。
-
将新公共密钥复制到变量。
NEW_PUB_KEY = "Paste New Public Key here"
-
将新的公钥附加到 ESXi 主机上的
authorized_keys
文件。echo "<$NEW_PUB_KEY>" >> /etc/ssh/keys-root/authorized_keys
-
为
authorized_keys
文件启用 sticky 位以防止意外修改。chmod +t /etc/ssh/keys-root/authorized_keys
-
执行自动备份脚本以使
authorized_keys
文件持久化。/sbin/auto-backup.sh
后续步骤
在 Oracle Cloud VMware Solution SDDC 中的所有 ESXi 主机上连续执行任务 1 到 7。
相关链接
确认
- 作者 - Praveen Kumar Pedda Vakkalam(首席解决方案架构师)
更多学习资源
浏览 docs.oracle.com/learn 上的其他实验室,或者通过 Oracle Learning YouTube 频道访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle Learning Explorer。
有关产品文档,请访问 Oracle 帮助中心。
Replace SSH Keys for Oracle Cloud VMware Solution ESXi hosts
F59851-03
December 2023
Copyright © 2023, Oracle and/or its affiliates.