

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用安全外壳连接到 Lightsail for Research 虚拟计算机
<a name="connect-using-ssh"></a>

您可以使用安全外壳协议 (SSH) 连接到 Amazon Lightsail for Research 中的虚拟计算机。您可以使用 SSH 远程管理虚拟计算机，这样您就可以通过互联网登录计算机并运行命令。

**注意**  
您还可以使用基于浏览器的 Amazon DCV 客户端与您的虚拟计算机建立远程显示协议连接。亚马逊 DCV 在 Lightsail for Research 控制台中可用。有关更多信息，请参阅 [访问你的 Lightsail for Research 虚拟计算机的操作系统](access-computer-operating-system.md)。

**Topics**
+ [完成 先决条件](#connect-using-ssh-prerequisites)
+ [使用 SSH 连接到虚拟计算机](#connect-virtual-computer-using-ssh)
+ [继续执行后续步骤](#connect-using-ssh-next-steps)

## 完成 先决条件
<a name="connect-using-ssh-prerequisites"></a>

在开始之前，请满足以下先决条件。
+ 在 Lightsail 中创建一台用于研究的虚拟计算机。有关更多信息，请参阅 [创建 Lightsail for Research 虚拟计算机](create-computer.md)。
+ 确保您要连接的虚拟计算机处于运行状态。另外，请记下虚拟计算机的名称和创建虚拟计算机的 AWS 区域。在此流程的稍后阶段，您将需要这些信息。有关更多信息，请参阅 [查看 Lightsail 研究版虚拟计算机详情](view-computer.md)。
+ 确保您要连接的虚拟计算机上的端口 22 已打开。这是 SSH 使用的默认端口。该端口预设情况下打开。但是，如果您将其关闭，则必须先将其重新打开，然后才能继续使用。有关更多信息，请参阅 [管理 Lightsail for Research 虚拟机的防火墙端口](manage-ports.md)。
+ 为您的虚拟计算机获取 Lightsail 默认密钥对 (DKP)。有关更多信息，请参阅 [获取虚拟计算机的密钥对](get-ssh-keys.md#get-dkp-ssh-keys)。
**提示**  
如果您打算使用 AWS CloudShell 连接到您的虚拟计算机，请参阅[使用 Connect 连接到虚拟计算机 AWS CloudShell](#connect-using-cloudshell)下一节中的。有关更多信息，请参阅[什么是 AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)。否则，请继续执行下一个先决条件。
+ 下载并安装 AWS Command Line Interface (AWS CLI)。有关更多信息，请参阅《AWS Command Line Interface 用户指南版本 2》**中的[安装或更新最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。
+ 配置 AWS CLI 以访问您的 AWS 账户。有关更多信息，请参阅《AWS Command Line Interface 用户指南版本 2》**中的[配置基础知识](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)。
+ 下载并安装 jq。它是一个轻型且灵活的命令行 JSON 处理器，用于在以下过程中提取密钥对详细信息。有关下载和安装 jq 的更多信息，请参阅 *jq 网站*上的[下载 jq](https://stedolan.github.io/jq/download/)。

## 使用 SSH 连接到虚拟计算机
<a name="connect-virtual-computer-using-ssh"></a>

完成以下过程之一，在 Lightsail for Research 中建立与虚拟计算机的 SSH 连接。

### 使用 Connect 连接到虚拟计算机 AWS CloudShell
<a name="connect-using-cloudshell"></a>

如果您希望以最少的设置连接到虚拟计算机，则此过程适用。 AWS CloudShell 使用基于浏览器、经过预先验证的 shell，您可以直接从中启动该外壳。 AWS 管理控制台你可以使用你喜欢的外壳来运行 AWS CLI 命令，比如 Bash PowerShell、或 Z shell。您无需下载或安装命令行工具，即可完成此操作。有关更多信息，请参阅《AWS CloudShell 用户指南》**中的[开始使用 AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/getting-started.html)。

**重要**  
在开始之前，请确保获取要连接的虚拟计算机的 Lightsail 默认密钥对 (DKP)。有关更多信息，请参阅 [获取 Lightsail for Research 虚拟计算机的密钥对](get-ssh-keys.md)。

1. 在 [Lightsail for Research 控制台](https://lfr.console.aws.amazon.com/ls/research)中，选择以下选项之一启动 CloudShell ：

   1. 在 “搜索” 框中，键入 CloudShell “”，然后选择**CloudShell**。

   1. 在导航栏上选择 **CloudShell** 图标。

   1. **CloudShell**在控制台左下角的控制台工具栏上选择。  
![AWS CloudShell 界面中的主要功能。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/ssh-cloudshell-connect.png)

   当系统显示命令提示符时，表示 shell 已经准备就绪，可以进行交互。  
![AWS CloudShell 终端接口。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/cloudshell-terminal.png)

1. 选择要使用的预装外壳。要更改默认 shell，请在命令行提示符下输入以下程序名称之一。 Bash是启动时正在运行的默认 shell AWS CloudShell。

------
#### [ Bash ]

   `bash`

   如果切换到 Bash，则命令提示符处的符号将更新为 `$`。

------
#### [ PowerShell ]

   `pwsh`

   如果切换到 PowerShell，则命令提示符处的符号将更新为`PS>`。

------
#### [ Z shell ]

   `zsh`

   如果切换到 Z shell，则命令提示符处的符号将更新为 `%`。

------

1. 要从 CloudShell 终端窗口连接到虚拟计算机，请参阅[在 Linux、Unix 或 macOS 本地计算机上使用 SSH 连接到虚拟计算机](#connect-using-ssh-linux)。

有关 CloudShell环境中预安装软件的信息，请参阅《*AWS CloudShell 用户指南》*中的[AWS CloudShell 计算环境](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#pre-installed-software)。

### 在 Windows 本地计算机上使用 SSH 连接到虚拟计算机
<a name="connect-using-ssh-windows"></a>

如果您的本地计算机使用 Windows 操作系统，则此过程适用。此过程使用`get-instance` AWS CLI 命令获取您要连接的实例的用户名和公有 IP 地址。有关更多信息，请参阅《AWS CLI 命令参考》**中的 [get-instance](https://docs.aws.amazon.com/cli/latest/reference/lightsail/get-instance.html)。

**重要**  
在开始此过程之前，请确保获得要连接的虚拟计算机的 Lightsail 默认密钥对 (DKP)。有关更多信息，请参阅 [获取 Lightsail for Research 虚拟计算机的密钥对](get-ssh-keys.md)。该过程将 Lightsail DKP 的私钥输出到一个`dkp_rsa`文件中，该文件用于以下命令之一。

1. 打开 Command Prompt (命令提示符窗口)。

1. 输入以下命令，以显示虚拟计算机的公有 IP 地址和用户名。在命令中，`{{region-code}}`替换为 AWS 区域 创建虚拟计算机时使用的代码，例如`us-east-2`。将 `{{computer-name}}` 替换为要连接的虚拟计算机的名称。

   ```
   aws lightsail get-instance --region {{region-code}} --instance-name {{computer-name}} | jq -r ".instance.username" & aws lightsail get-instance --region {{region-code}} --instance-name {{computer-name}} | jq -r ".instance.publicIpAddress"
   ```

   **示例**

   ```
   aws lightsail get-instance --region {{us-east-2}} --instance-name {{MyJupyterComputer}} | jq -r ".instance.username" & aws lightsail get-instance --region {{us-east-2}} --instance-name {{MyJupyterComputer}} | jq -r ".instance.publicIpAddress"
   ```

   响应将显示虚拟计算机的用户名和公有 IP 地址，如以下示例所示。请记下这些值，因为在此过程的后续步骤中需要这些值。  
![虚拟计算机的用户名和公有 IP 地址。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/scp-public-ip-address-and-user-windows.png)

1. 输入以下命令，与您的虚拟计算机建立 SSH 连接。在命令中，将 `{{user-name}}` 替换为登录用户名，将 `{{public-ip-address}}` 替换为虚拟计算机的公有 IP 地址。

   ```
   ssh -i dkp_rsa {{user-name}}@{{public-ip-address}}
   ```

   **示例**

   ```
   ssh -i dkp_rsa {{ubuntu}}@{{192.0.2.0}}
   ```

   您应该会看到与以下示例类似的响应，该示例显示了在 Lightsail for Research 中与 Ubuntu 虚拟计算机建立的 SSH 连接。  
![已建立与虚拟计算机的 SSH 连接。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/ssh-connected-windows.png)

   现在，您已成功建立与虚拟计算机的 SSH 连接，请继续阅读[下一节](#connect-using-ssh-next-steps)以了解其他后续步骤。

### 在 Linux、Unix 或 macOS 本地计算机上使用 SSH 连接到虚拟计算机
<a name="connect-using-ssh-linux"></a>

如果您的本地计算机使用的是 Linux、Unix 或 macOS 操作系统，则此过程适用。此过程使用`get-instance` AWS CLI 命令获取您要连接的实例的用户名和公有 IP 地址。有关更多信息，请参阅《AWS CLI 命令参考》**中的 [get-instance](https://docs.aws.amazon.com/cli/latest/reference/lightsail/get-instance.html)。

**重要**  
在开始此过程之前，请确保获得要连接的虚拟计算机的 Lightsail 默认密钥对 (DKP)。有关更多信息，请参阅 [获取 Lightsail for Research 虚拟计算机的密钥对](get-ssh-keys.md)。该过程将 Lightsail DKP 的私钥输出到一个`dkp_rsa`文件中，该文件用于以下命令之一。

1. 打开终端窗口。

1. 输入以下命令，以显示虚拟计算机的公有 IP 地址和用户名。在命令中，`{{region-code}}`替换为创建虚拟计算机的 AWS 区域的代码，例如`us-east-2`。将 `{{computer-name}}` 替换为要连接的虚拟计算机的名称。

   ```
   aws lightsail get-instance --region {{region-code}} --instance-name {{computer-name}} | jq -r '.instance.username' && aws lightsail get-instance --region {{region-code}} --instance-name {{computer-name}} | jq -r '.instance.publicIpAddress'
   ```

   **示例**

   ```
   aws lightsail get-instance --region {{us-east-2}} --instance-name {{MyJupyterComputer}} | jq -r '.instance.username' && aws lightsail get-instance --region {{us-east-2}} --instance-name {{MyJupyterComputer}} | jq -r '.instance.publicIpAddress'
   ```

   响应将显示虚拟计算机的用户名和公有 IP 地址，如以下示例所示。请记下这些值，因为在此过程的后续步骤中需要这些值。  
![虚拟计算机的用户名和公有 IP 地址。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/scp-public-ip-address-and-user-linux.png)

1. 输入以下命令，与您的虚拟计算机建立 SSH 连接。在命令中，将 `{{user-name}}` 替换为登录用户名，将 `{{public-ip-address}}` 替换为虚拟计算机的公有 IP 地址。

   ```
   ssh -i dkp_rsa {{user-name}}@{{public-ip-address}}
   ```

   **示例**

   ```
   ssh -i dkp_rsa {{ubuntu}}@{{192.0.2.0}}
   ```

   您应该会看到与以下示例类似的响应，该示例显示了在 Lightsail for Research 中与 Ubuntu 虚拟计算机建立的 SSH 连接。  
![已建立与虚拟计算机的 SSH 连接。](http://docs.aws.amazon.com/zh_cn/lightsail-for-research/latest/ug/images/ssh-connected-linux.png)

   现在，您已成功建立与虚拟计算机的 SSH 连接，请继续阅读[下一节](#connect-using-ssh-next-steps)以了解其他后续步骤。

## 继续执行后续步骤
<a name="connect-using-ssh-next-steps"></a>

成功与虚拟计算机建立 SSH 连接后，您可以完成以下其他后续步骤：
+ 使用 SCP 连接到您的虚拟计算机，以安全地传输文件。有关更多信息，请参阅 [使用安全副本将文件传输到 Lightsail for Research 虚拟计算机](connect-using-scp.md)。