---
url: /courses/cloud-platform-build-management/lab-01/index.md
---
# 实训 01：从 WSL2 安全进入云服务器

## 任务情境

你是“云端课程学习站”项目的初级运维人员。团队给你一台 Windows 11 电脑和一台阿里云 ECS。你的第一项任务不是安装网站，而是确认管理链路可用，并提交一份不泄露凭据的环境报告。

## 学习成果

完成后，你应该能：

* 判断 Windows 中是否已有 WSL2 Ubuntu，并选择直接进入或首次安装；
* 说明 Windows、WSL2 和 ECS 的分工；
* 从 WSL 发起 SSH 登录；
* 使用只读命令采集 ECS 基线；
* 根据典型报错判断故障层级；
* 提交脱敏的环境报告和链路图。

## 开始前的安全确认

* 不在文档、截图、Git 或 AI 对话中写入密码、私钥、验证码和 AccessKey。
* 公网 IP 在提交材料中写成 `<已脱敏地址>`，或只保留末尾一小段用于区分。
* 不为了连接方便开放全部端口。
* 不执行释放实例、重装系统、删除云盘等高风险操作。
* 不确定计费时先停下，由教师核对控制台。

## 任务 0：选择你的完成路径

先阅读[课程作业提交规范](./assignment-submission-policy.md)，再新建 Word 文档：

```txt
班级_学号_姓名_第01次课_云平台环境报告.docx
```

解压配套包，填写其中的 `environment-report-template.docx`，不要另行提交 Markdown 文件。

### A 路径：ECS 已经可用

完成任务 1–6，提交真实但已脱敏的连接和系统证据。

### B 路径：ECS 还没有可用

完成任务 1、2、5、6；任务 3、4使用教师提供的合成截图和报错案例。服务器可用后补交连接证据。

未开通服务器不等于本课没有任务。链路识读、安全判断和故障分类仍然可以完成。

在 Word 基本信息中写明自己选择的是 A 路径还是 B 路径。B 路径不伪造 ECS 截图，保留“ECS 补交”标题即可。

WSL 还要单独记录一种准备状态：

* **W1：已有 WSL2 Ubuntu。** 识别现有发行版并直接进入，不重复安装。
* **W2：没有 Ubuntu。** 按正文完成安装、重启和首次账号初始化。
* **W3：WSL 暂不可用。** 保存 PowerShell 原始错误、Windows 版本和虚拟化状态，交给教师或机房管理员处理；不伪造 WSL 基线。

ECS 的 A/B 路径与 WSL 的 W1/W2/W3 状态是两件事。例如“W2 + B”表示本次新装了 WSL，但 ECS 还没有开通。

## 任务 1：准备并确认 WSL2 控制端

### 1.1 在 Windows 中识别现有发行版

打开 Windows Terminal 的 PowerShell，运行：

```powershell
[Windows PowerShell] wsl --status
[Windows PowerShell] wsl --list --verbose
```

写入 Word：

* 插入“图 1 Windows 中的 WSL 状态”；
* 说明是否已经存在 Ubuntu、它是 `Running` 还是 `Stopped`、`VERSION` 是否为 `2`；
* 截图只保留判断所需内容，隐藏可识别个人的 Windows 用户目录。

若已经存在 Ubuntu，直接执行：

```powershell
[Windows PowerShell] wsl --distribution Ubuntu
```

发行版名称必须以 `wsl -l -v` 的真实输出为准。显示 `Ubuntu-24.04` 时不能照抄 `Ubuntu`。

### 1.2 没有 Ubuntu 时完成首次安装

W2 学生在管理员 PowerShell 中运行：

```powershell
[Windows PowerShell（管理员）] wsl --install -d Ubuntu
```

按提示重启 Windows，再从“开始”菜单打开 Ubuntu，完成 Linux 用户名和密码初始化。密码输入时屏幕没有字符属于正常现象，不要把密码放进截图。

安装命令只显示帮助信息时，运行：

```powershell
[Windows PowerShell] wsl --list --online
```

确认列表中有 Ubuntu 后重新安装。下载停在 `0.0%` 或出现虚拟化错误时，保留原始现象，回到正文的“常见安装现象”处理，不使用来历不明的安装器。

W3 学生在报告中写明错误代码、虚拟化状态和需要谁提供权限。机房设备没有管理员或 BIOS 权限时，不自行修改。

### 1.3 进入 Ubuntu 并建立基线

进入 Ubuntu 后执行：

```bash
[WSL] whoami
[WSL] pwd
[WSL] hostname
[WSL] cat /etc/os-release
[WSL] uname -r
[WSL] ssh -V
```

把结果写入报告，但隐藏可能识别个人身份的用户名和主机名。

检查点：

* PowerShell 中能看到一个 WSL2 Ubuntu 发行版；
* 能看到 Linux 内核信息；
* 能确认当前目录位于自己的 Linux 家目录；
* 能看到 SSH 客户端版本；
* 能解释这组命令运行在本地 WSL，而不是 ECS。

写入 Word：

* 插入“图 2 WSL 控制端基线”；
* 截图中保留命令和主要输出，隐藏可识别个人的用户名与主机名；
* 在图下写一至三句话，说明 WSL、内核和 SSH 客户端是否可用。

## 任务 2：画出管理链路

打开配套包中的 `environment-report-template.docx`，补全下面的链路：

```txt
Windows 11
  -> WSL2 Ubuntu
  -> SSH 客户端
  -> 互联网
  -> ECS 安全组
  -> ECS SSH 服务
  -> Linux 账号
```

在每一层旁边写出一个可以检查的证据。例如：

* Windows/WSL：是否能打开 Ubuntu；
* 网络：是否使用正确地址；
* 安全组：是否有必要的入方向规则；
* SSH 服务：是否监听目标端口；
* 账号：用户名与凭据是否匹配。

写入 Word：

* 插入“图 3 Windows—WSL—ECS 管理链路”；
* 可以使用 Word 形状、SmartArt，或插入清晰的手绘照片；
* 每一层至少写一条检查方法，不能只画出名称。

## 任务 3：核查 ECS，不做高风险变更

在阿里云控制台核查：

* 实例处于运行状态；
* 操作系统镜像与教师要求一致；
* CPU、内存和系统盘规格符合课程要求；
* 公网访问方式已经确认；
* 安全组只开放当前需要的端口；
* 已了解停止、释放和重装的区别。

只在报告里记录结论，不提交完整公网 IP、实例 ID、订单号或账号信息。

写入 Word：

* 用文字记录实例是否运行、镜像与规格是否符合要求；
* 如需截图，只截取完成判断所需的局部，并完成脱敏；
* 安全组截图必须能看出协议、端口和来源范围，但不能暴露完整公网地址和账号信息。

## 任务 4：从 WSL 登录 ECS

先从控制台或课程说明确认登录用户名，再执行：

```bash
[WSL] ssh <用户名>@<服务器地址>
```

第一次出现主机指纹提示时，先核对目标地址，再确认。

登录成功后执行：

```bash
[ECS] whoami
[ECS] hostname
[ECS] uname -a
[ECS] cat /etc/os-release
[ECS] free -h
[ECS] df -h
[ECS] ip -brief address
```

然后退出：

```bash
[ECS] exit
```

检查点：

* 能说明 `[WSL]` 与 `[ECS]` 的位置变化；
* 能从输出中找到系统、内存、磁盘和网络信息；
* 截图或文本证据已经脱敏。

建议截图分组：

* “图 4 SSH 登录与位置变化”：保留登录命令的脱敏形式、远程提示符和 `whoami`、`hostname` 结果；
* “图 5 ECS 系统基线”：保留 `uname -a` 与 `/etc/os-release` 的主要输出；
* “图 6 ECS 资源基线”：保留 `free -h`、`df -h` 和 `ip -brief address` 的必要输出。

每张图下面都要回答：

1. 命令在 `[WSL]` 还是 `[ECS]` 执行？
2. 输出中的哪一部分是关键证据？
3. 这条证据支持什么结论？

B 路径学生不执行本任务，在 Word 中写明暂缺 ECS 的客观原因和计划补交的证据。

## 任务 5：完成一张故障工单

从下面选择一种现象：

* `Connection timed out`
* `Connection refused`
* `Permission denied`
* `No route to host`

按模板填写：

```txt
现象：
更可能属于哪一层：
第一条证据：
下一步只读检查：
不应该立即执行的操作：
判断依据：
```

要求先分类，再给检查步骤。不能只写“检查网络”或“重装试试”。

写入 Word 时使用“现象—层级—证据—下一步—禁做操作—依据”的顺序。如果使用教师提供的截图，应注明“教师合成案例”，不能写成自己的真实服务器故障。

## 任务 6：运行本地验收

在 WSL 中：

```bash
[WSL] bash verify.sh --role wsl
```

把 `verify.sh` 复制到 ECS 后，也可以运行：

```bash
[ECS] bash verify.sh --role ecs
```

脚本只做只读环境检查，不读取私钥，不扫描个人文件，也不修改系统。

把输出中最后的通过、提醒或失败结果截入 Word，并说明仍未通过的项目以及下一步准备怎样检查。验收脚本失败不等于没有成绩，隐瞒失败或只截取成功部分才会破坏证据链。

## 挑战任务

已经熟悉 SSH 的同学任选一项：

1. 配置 SSH 别名，但配置示例中不提交真实地址和私钥路径。
2. 解释为什么 `Permission denied` 通常不应通过开放更多安全组端口解决。
3. 比较“系统盘快照”和“文件压缩包”能恢复的问题范围。

## 提交清单

* 一个按规范命名的 `.docx` 文件；
* 基本信息、WSL 的 W1/W2/W3 状态与 ECS 的 A/B 完成路径；
* Windows 中的 WSL 发行版和版本证据；
* WSL 基线截图及解释；
* 一张带检查证据的管理链路图；
* A 路径的 ECS 核查、SSH 登录和系统基线证据，或 B 路径的教师合成案例分析；
* 一张完整故障工单；
* 验收脚本结果与未通过项说明；
* 本课复盘。

## 提交到智慧职教

1. 在本机重新打开最终 Word，确认截图没有丢失、旋转或模糊。
2. 检查文件名、文件大小和脱敏情况，删除临时截图和无关内容。
3. 打开智慧职教在线平台中教师发布的“第01次课”作业收集。
4. 上传最终 `.docx`，不要上传 `.md`、私钥、压缩包或 Word 临时文件。
5. 等待平台显示提交成功，再核对一次附件名称和提交时间。

把文件发到班级群、私聊教师或只保存在本机，都不算完成提交。平台上传失败时保留本地文件和失败页面的脱敏截图，及时联系教师。

## 验收标准

| 等级 | 标准 |
|---|---|
| 保底 | 能打开 WSL、说清三种环境角色、完成链路图和故障分类 |
| 标准 | 成功登录 ECS，完成系统基线和脱敏报告 |
| 挑战 | 能解释 SSH 配置、安全组边界或备份恢复差异 |

无论选择哪个等级，Word 结构、截图说明、脱敏和智慧职教成功提交都是共同要求。
