> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/welcome/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/welcome/cn/elastic-compute/best-practice/access-an-elastic-compute-instance.md).

# 访问弹性算力实例

## 背景信息

创建弹性算力实例后，您可以远程控制和管理它们。以下是几种远程访问方法。

* **RDP（远程桌面协议）**\
  RDP 是一种常用的远程桌面协议，用于远程管理 Windows 操作系统。\
  推荐您通过 RDP 远程连接到 Windows 弹性算力实例。
* **SSH（安全外壳协议）**\
  SSH 是一种基于命令行的远程管理工具，使用安全网络协议。SSH 在类 UNIX 操作系统中广泛使用，包括 Linux、BSD 和 macOS。\
  推荐您使用终端或 Windows PowerShell 建立与非 Windows 弹性算力实例的 SSH 连接。
* **RFB（远程帧缓冲协议）**\
  RFB 是一种用于图形远程管理的协议。VNC（虚拟网络计算）是基于 RFB 协议的常见图形远程管理工具，用于类 UNIX 操作系统。VNC 登录提供图形桌面环境，使您可以通过视觉方式与实例交互。VNC 协议在多个操作系统和平台上也得到广泛支持，更加灵活和兼容。\
  推荐您通过 VNC 远程访问和控制弹性算力实例的图形界面。

这些协议和工具提供了多种方式来远程访问和管理虚拟机。RDP 为 Windows 虚拟机提供图形界面；SSH 为类 UNIX 虚拟机提供命令行界面进行远程管理；而 VNC 无论操作系统如何，都能实现图形远程管理。

以下以 Linux 实例（`Ubuntu-test`）和 Windows 实例（`Windows-test`）为例，演示如何使用本地计算机远程访问它们。

* `Ubuntu-test`\
  默认用户名：`ubuntu`\
  密码：`Test+123`
* `Windows-test`\
  默认用户名：`Admin`\
  密码：`Test+123`

<div align="left"><figure><img src="/files/dvHI4bieWmoKZcF0ahrs" alt=""><figcaption></figcaption></figure></div>

{% hint style="info" %} <mark style="color:blue;">**注意**</mark>

* <mark style="color:blue;">有关如何创建弹性算力实例的详细信息，请参阅</mark> [<mark style="color:purple;">**创建实例**</mark>](/welcome/cn/elastic-compute/get-started/create-an-instance.md) <mark style="color:blue;">。</mark>
* <mark style="color:blue;">在创建实例时，至少会关联一个安全组。要成功进行远程访问，请确保安全组允许以下端口的流量：TCP 22（用于 SSH）、TCP 3389（用于 RDP）和 ICMP 端口（用于网络管理和调试）。</mark>
* <mark style="color:blue;">以下步骤可能会因您使用的操作系统和应用程序而有所不同。您可能需要使用不同的命令或工具来执行相同的操作。</mark>
  {% endhint %}

## 通过 SSH 访问 Linux 实例

当您需要访问 Linux 实例时，可以使用 SSH。假设使用的是 macOS 终端和 Windows PowerShell。

如果您已将 SSH 公钥部署到服务器上，也可以使用 SSH 密钥进行身份验证，而无需输入密码。

{% tabs %}
{% tab title="macOS 客户端（终端）" %}
**前提条件**

* 确保虚拟机已启用 SSH 并正在运行。
* 获取您要访问的虚拟机的公网 IP 地址，即 Linux 实例（`Ubuntu-test`）。您可以在 zenConsole 的实例列表页面中找到此信息。此处为 `113.31.99.141`。

**操作步骤**

1. 在您的 macOS 计算机上打开 **终端** 应用程序。您可以在 **应用程序** > **实用工具** 文件夹中找到它，或者可以使用 **Spotlight** 搜索它。
2. 在 **终端** 中，使用 SSH 命令和实例的 IP 地址建立远程连接。命令语法如下：

   ```bash
   ssh ubuntu@113.31.99.141
   ```
3. 按 **Enter** 键，**终端** 将尝试与实例建立 SSH 连接。如果是首次连接到该实例，可能会提示您通过验证其密钥指纹来确认主机的真实性。输入 `yes` 继续。
4. SSH 连接成功建立后，将提示您输入实例上选定用户名的密码。此处提供 `Test+123` 并按 **Enter** 键。
5. 认证成功后，您将在 macOS 计算机上打开一个 **终端** 会话，但会话将使用远程虚拟机的命令行界面。从这里，您可以执行命令并管理实例。
   {% endtab %}

{% tab title="Windows 命令行 (PowerShell)" %}
**前提条件**

* 确保要访问的虚拟机启用了 SSH 并正在运行。PowerShell 远程管理在 Windows 操作系统中默认可用。
* 获取要访问的虚拟机的公网 IP 地址，即 Linux 实例 (`Ubuntu-test`) 的地址。您可以在 zenConsole 的实例列表页面中找到此信息。此处为 `113.31.99.141`。

**操作步骤**

1. 在 Windows 计算机上打开 **PowerShell** 应用程序。您可以通过在 **开始** 菜单中搜索 "**PowerShell**" 或按 `Win + X` 并选择 **Windows PowerShell** 或 **Windows PowerShell (管理员)** 来完成此操作。
2. 在 **PowerShell** 控制台中，使用以下命令建立与实例的远程会话：

   ```bash
   ssh ubuntu@113.31.99.141
   ```
3. 按 **Enter** 键，将提示您输入实例上选定用户名的密码。此处提供 `Test+123` 并按 **Enter** 键。
   {% endtab %}
   {% endtabs %}

````
```bash
ssh root@113.31.99.141
```
````

3\. 按 **Enter** 键，**Terminal** 将尝试与实例建立 SSH 连接。如果是首次连接到该实例，可能会提示您通过验证其密钥指纹来确认主机的真实性。输入 `yes` 继续。 4. SSH 连接成功建立后，将提示您输入实例上选定用户名的密码。此处提供 `Test+123` 并按 **Enter** 键。 5. 认证成功后，您将在 macOS 计算机上打开一个 **Terminal** 会话，但会话将使用远程虚拟机的命令行界面。从这里，您可以执行命令并管理实例。

#### 前提条件

* 确保要访问的虚拟机启用了 PowerShell 远程管理并正在运行。PowerShell 远程管理在 Windows 操作系统中默认可用。
* 获取要访问的虚拟机的公网 IP 地址，即 Linux 实例 (`Ubuntu-test`) 的地址。您可以在 zenConsole 的实例列表页面中找到此信息。此处为 `113.31.99.141`。

#### 操作步骤

1. 在 Windows 计算机上打开 **PowerShell** 应用程序。您可以通过在 **开始** 菜单中搜索 "**PowerShell**" 或按 `Win + X` 并选择 **Windows PowerShell** 或 **Windows PowerShell (管理员)** 来完成此操作。
2. 在 **PowerShell** 控制台中，使用以下命令建立与实例的远程会话：

   ```bash
   Enter-PSSession -ComputerName 113.31.99.141 -Credential root
   ```
3. 按 **Enter** 键，将提示您输入实例上选定用户名的密码。此处提供 `Test+123` 并按 **Enter** 键。
4. 认证成功后，您将在本地计算机上打开一个 **PowerShell** 会话，但会话将使用远程虚拟机的命令行界面。从这里，您可以执行 **PowerShell** 命令并管理实例。

\### 前提条件

获取要访问的虚拟机的公网 IP 地址，即 Linux 实例 (`Ubuntu-test`) 的地址。您可以在 zenConsole 的实例列表页面中找到此信息。此处为 `113.31.99.141`。

#### 操作步骤

1. 在本地计算机上运行以下命令生成 SSH 密钥对：

   ```bash
   ssh-keygen -t rsa -b 4096
   ```

   这将生成一个 4096 位的 RSA 密钥对，包括私钥和公钥。默认情况下，它们将保存在 `~/.ssh` 目录中。
2. 使用以下命令检索生成的公钥：

   ```bash
   cat ~/.ssh/id_rsa.pub
   ```

   这将显示您的公钥。复制它。

   {% hint style="info" %} <mark style="color:blue;">**注意**</mark>

   <mark style="color:blue;">对于 Windows 操作系统，使用</mark> <mark style="color:blue;">`type`</mark> <mark style="color:blue;">命令在命令提示符或 PowerShell 中显示公钥：</mark>

   ```bash
   type %userprofile%\.ssh\id_rsa.pub
   ```

   {% endhint %}
3. 使用 SSH 命令和 IP 地址访问实例：

   ```bash
   ssh root@113.31.99.141
   ```
4. 按 **Enter** 键。这将尝试与实例建立 SSH 连接。如果是首次连接到该实例，可能会提示您通过验证其密钥指纹来确认主机的真实性。输入 `yes` 继续。
5. SSH 连接成功建立后，将提示您输入实例上选定用户名的密码。此处提供 `Test+123` 并按 **Enter** 键。
6. 在实例上，打开 `~/.ssh/authorized_keys` 文件（如果不存在则创建它）。您可以使用以下命令打开该文件：

   ```bash
   nano ~/.ssh/authorized_keys
   ```

   将之前检索到的公钥粘贴到文件中并保存。

#### 结果

您可以使用 SSH 密钥对访问实例。运行以下命令：

```bash
ssh -i ~/.ssh/id_rsa root@113.31.99.141
```

这将使用私钥进行身份验证，而无需密码。

您现在可以使用 SSH 密钥对访问实例。运行以下命令：

```bash
ssh -i ~/.ssh/id_rsa root@113.31.99.141
```

这将使用私钥进行身份验证，而无需密码。

## 通过 RDP 访问 Windows 实例

当您需要访问 Windows 实例时，建议使用 RDP。

### 前提条件

* 确保 Windows 实例正在运行并且已启用 RDP。RDP 默认在 Windows 操作系统上可用。
* 获取实例的公网 IP 地址，即 Windows 实例 (`Windows-test`) 的地址。您可以在 zenConsole 的实例列表页面找到此信息。这里是 `113.31.99.255`。

### 操作步骤

1. 在您的本地计算机上打开 **远程桌面** 客户端应用程序。此应用程序内置于 Windows，您可以通过在 **开始** 菜单中搜索 "**远程桌面**" 来找到它。
2. 在 **远程桌面** 客户端中，输入实例的公网 IP 地址，即 `113.31.99.255`，在 "**计算机**" 字段中。
3. 单击 **连接** 以启动连接。
4. 如果提示，请输入实例上的用户账户凭据。\
   \- 默认用户名：`Admin`\
   \- 密码：`Test+123`
5. 身份验证成功后，**远程桌面** 客户端将建立与 Windows 实例的连接。您将看到虚拟机的桌面显示在本地计算机上。
6. 您现在可以像坐在 Windows 桌面前一样与 Windows 实例进行交互。您可以运行应用程序、访问文件、配置设置以及执行通常在 Windows 桌面上进行的任何其他任务。

请确保在虚拟机和本地计算机上都配置了必要的防火墙规则以允许 RDP 连接。

## 通过 VNC 访问您的实例

### 通过 VNC 访问 Linux 实例

您可以使用 VNC 远程访问 Linux 实例。

#### 前提条件

您可以在 zenConsole 上通过 VNC 远程访问任何虚拟机。请在远程访问前获取您要访问的虚拟机的公网 IP 地址。这里以 Linux 实例 (`Ubuntu-test`) 为例。

* 默认用户名：`ubuntu`
* 密码：`Test+123`

#### 操作步骤

1. 转到弹性算力实例列表页面，找到实例并单击 **操作** > **VNC 访问**。

   <div align="left"><figure><img src="/files/Kd7zd8xjPIgw1c3X3kMY" alt=""><figcaption></figcaption></figure></div>
2. 输入默认用户名：`ubuntu`，并按 **Enter**。**终端** 将尝试建立 SSH 连接。
3. 输入实例的密码。这里提供 `Test+123` 并按 **Enter**。

   <div align="left"><figure><img src="/files/VfetGTYICCaqeT7Kt5jF" alt="" width="371"><figcaption></figcaption></figure></div>
4. 身份验证成功后，VNC 将建立与虚拟机的连接。您应在 VNC 客户端窗口中看到虚拟机的桌面或图形界面。

   <div align="left"><figure><img src="/files/RDw0fczuHsuPxY6HRUtO" alt="" width="563"><figcaption></figcaption></figure></div>
5. *<mark style="color:green;">（可选）</mark>* 您可以将代码粘贴到 **剪贴板** 中并单击 <img src="/files/94qT99llBFZ6nB3sr1aA" alt="" data-size="line"> 以快速运行您的命令。

   <div align="left"><figure><img src="/files/dGyBNJ7uPRxkGe1RbzlW" alt="" width="366"><figcaption></figcaption></figure></div>

### 通过 VNC 访问 Windows 实例

您可以使用 VNC 远程访问 Windows 实例。

#### 前提条件

您可以在 zenConsole 上通过 VNC 远程访问任何虚拟机。请在远程访问前获取您要访问的虚拟机的公网 IP 地址。这里以 Windows 实例 (`Windows-test`) 为例。

#### 操作步骤

1. 转到弹性算力实例列表页面，找到实例并单击 **操作** > **VNC 访问**。

   <div align="left"><figure><img src="/files/nc47bgMRPPhzsiCSUuWT" alt=""><figcaption></figcaption></figure></div>
2. 点击左侧栏的 <img src="/files/SRFV8R0dBT5ZpPmtw3sQ" alt="" data-size="line"> 以解锁，然后点击 **登录**。

   <div align="left"><figure><img src="/files/QxZ1PyOcI9buDIw8bQuR" alt=""><figcaption></figcaption></figure></div>
3. 点击 **确定**，输入并确认您的新密码以更改系统生成的密码。

   <div align="left"><figure><img src="/files/7NfwkRIIpxtl0zLombH1" alt="" width="279"><figcaption></figcaption></figure></div>
4. 等待实例可访问，然后配置您的本地服务器。

   <div align="left"><figure><img src="/files/4FSesC20XFWpLWX7hW9Z" alt=""><figcaption></figcaption></figure></div>

## 摘要

上述协议和访问方法提供了在不同场景下的便利性和灵活性。您可以选择最适合您需求的方式远程访问和管理虚拟机，无论是使用图形用户界面还是命令行界面。
