# 访问弹性算力实例

## 背景信息

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

* **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="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-56dd758da5257ce13337575099a738ac9b636e6a%2Fimage%20(183).png?alt=media" alt=""><figcaption></figcaption></figure></div>

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

* <mark style="color:blue;">有关如何创建弹性算力实例的详细信息，请参阅</mark> [<mark style="color:purple;">**创建实例**</mark>](https://docs.console.zenlayer.com/welcome/cn/elastic-compute/get-started/create-an-instance) <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="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-f9687a25d36c9ea2719245e916b07aabb8921735%2Fimage%20(172).png?alt=media" alt=""><figcaption></figcaption></figure></div>
2. 输入默认用户名：`ubuntu`，并按 **Enter**。**终端** 将尝试建立 SSH 连接。
3. 输入实例的密码。这里提供 `Test+123` 并按 **Enter**。

   <div align="left"><figure><img src="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-6b0e630d17689f665ac0ab2597cc99be9aed321d%2Fimage%20(173).png?alt=media" alt="" width="371"><figcaption></figcaption></figure></div>
4. 身份验证成功后，VNC 将建立与虚拟机的连接。您应在 VNC 客户端窗口中看到虚拟机的桌面或图形界面。

   <div align="left"><figure><img src="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-8af6a6a3802b78f189e3d151fff46fc77f0f6b50%2Fimage%20(174).png?alt=media" alt="" width="563"><figcaption></figcaption></figure></div>
5. *<mark style="color:green;">（可选）</mark>* 您可以将代码粘贴到 **剪贴板** 中并单击 <img src="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-f833f7e90049b23e78113b5a468d1ea36e03885a%2Fimage%20(176).png?alt=media" alt="" data-size="line"> 以快速运行您的命令。

   <div align="left"><figure><img src="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-7238c219dc4acd8bf28a63c2aec6449aac7c646d%2Fimage%20(175).png?alt=media" 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="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-e51f6233b19660e1a1566a2c5a7fbb4b977d03b8%2Fimage%20(177).png?alt=media" alt=""><figcaption></figcaption></figure></div>
2. 点击左侧栏的 <img src="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-f4ba7cc2d697d9f00198e2478c68e39f86efb2d0%2Fimage%20(180).png?alt=media" alt="" data-size="line"> 以解锁，然后点击 **登录**。

   <div align="left"><figure><img src="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-78e4ac3f9bef61c4dae2ae357e40613150c56650%2Fimage%20(179).png?alt=media" alt=""><figcaption></figcaption></figure></div>
3. 点击 **确定**，输入并确认您的新密码以更改系统生成的密码。

   <div align="left"><figure><img src="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-b8b4ebdb260fa71dc634ff6c2418cced076afb32%2Fimage%20(181).png?alt=media" alt="" width="279"><figcaption></figcaption></figure></div>
4. 等待实例可访问，然后配置您的本地服务器。

   <div align="left"><figure><img src="https://2318250923-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F0CBWy7DFFtkhyEC9R4kE%2Fuploads%2Fgit-blob-f4fddeb72865bb884771f29e760ca3216d26dc20%2Fimage%20(182).png?alt=media" alt=""><figcaption></figcaption></figure></div>

## 摘要

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