> 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/get-started/manage-instances/access-an-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 则允许跨操作系统访问实例的图形界面。

{% hint style="info" %} <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="Linux (终端)" %}
**前提条件**

* 确保实例已启用 SSH 并正在运行。
* 除非访问计算机和目标实例在同一内网中，否则您要访问的实例必须具有公网 IP 地址。

**操作步骤**

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

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

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

* 确保实例已启用 PowerShell 远程管理和正在运行。PowerShell 远程管理默认在 Windows 操作系统上可用。
* 您要访问的实例必须具有公网 IP 地址，除非访问计算机和目标实例位于同一内网。

**操作步骤**

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

   ```bash
   Enter-PSSession -ComputerName ip_address -Credential username
   ```
3. 按 **Enter**，您将被提示输入实例上选定用户名的密码。
4. 验证身份后，您将在本地计算机上打开一个 **PowerShell** 会话，但使用远程实例的命令行界面。从这里，您可以执行 **PowerShell** 命令并对实例执行管理任务。
   {% endtab %}

{% tab title="SSH 密钥对" %}
**前提条件**

您要访问的实例必须具有公网 IP 地址，除非访问计算机和目标实例位于同一内网。

**操作步骤**

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

请将内容翻译为: 中文

输出为翻译后的 Markdown 文件内容，绝对不可以包解释，或者你思考的内容。 所有翻译需符合技术产品术语标准，保证专业性与语境准确性。

* 确保实例已启用 PowerShell 远程管理和正在运行。PowerShell 远程管理默认在 Windows 操作系统上可用。
* 您要访问的实例必须具有公网 IP 地址，除非访问计算机和目标实例位于同一内网。

**操作步骤**

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

   ```bash
   Enter-PSSession -ComputerName ip_address -Credential username
   ```
3. 按 **Enter**，您将被提示输入实例上选定用户名的密码。
4. 一旦身份验证成功，您将在本地计算机上打开一个 **PowerShell** 会话，但使用的是远程实例的命令行界面。从这里，您可以执行 **PowerShell** 命令并对实例执行管理任务。
   {% endtab %}

{% tab title="SSH 密钥对" %}
\### 前提条件

您要访问的实例必须具有公网 IP 地址，除非访问计算机和目标实例位于同一内网。

**操作步骤**

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 username@ip_address
   ```
4. 按 **Enter**。这将尝试与实例建立 SSH 连接。如果您第一次连接到虚拟机，可能会被提示通过验证主机的密钥指纹来确认主机的真实性。键入 `yes` 继续。
5. SSH 连接成功建立后，您将被提示输入实例上选定用户名的密码。
6. 在实例上打开 `~/.ssh/authorized_keys` 文件（如果不存在则创建它）。您可以使用以下命令打开文件：

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

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

**结果**

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

```bash
ssh -i ~/.ssh/id_rsa username@ip_address
```

这将使用私钥进行身份验证，无需密码。
{% endtab %}
{% endtabs %}

## 通过 RDP 访问 Windows 实例

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

### 前提条件

* 确保 Windows 实例正在运行并且已启用 RDP。RDP 默认在 Windows 操作系统上可用。
* 您要访问的实例必须具有公网 IP 地址，除非访问计算机和目标实例位于同一内网。

### 操作步骤

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

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

## 通过 VNC 访问实例

您可以通过 VNC 远程访问 Linux 或 Windows 实例。

### 前提条件

除非访问计算机和目标实例位于同一 **二层网络**，否则您想要访问的实例必须具有 **公网 IP** 地址。

{% tabs %}
{% tab title="Linux" %}

1. 转到 **弹性算力** 实例列表页面，点击所需的实例进入 **详情页**。
2. 单击 **VNC 访问** 进入 VNC 访问界面。等待直至显示：

   ```bash
   Connected (encrypted) to: QEMU (instance-xxxxxxxx)
   ```

   输入默认的用户名，按 **Enter**，**终端** 将尝试建立 SSH 连接。
3. 输入实例的密码。
4. 身份验证成功后，VNC 将与实例建立连接。您应该会在 VNC 客户端窗口中看到 VM 的桌面或图形界面。
5. *<mark style="color:green;">(可选)</mark>* 您可以将代码粘贴到 **剪贴板** 中并单击 **运行** 以快速执行命令。
   {% endtab %}

{% tab title="Windows" %}

1. 转到 **弹性算力** 实例列表页面，点击所需的实例进入 **详情页**。
2. 单击 **VNC 访问** 进入 VNC 访问界面。等待直至显示：

   ```bash
   Connected (encrypted) to: QEMU (instance-xxxxxxxx)
   ```
3. 转到 **键盘快捷键** > **Ctrl+Alt+Del**。
4. 单击 **剪贴板**，输入密码并单击 **运行**。
   {% endtab %}
   {% endtabs %}

## 总结

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