写文档

This commit is contained in:
2026-05-28 12:43:40 +08:00
parent eb34192fb1
commit 9e09b7e8d6
4 changed files with 335 additions and 11 deletions
+8 -7
View File
@@ -11,11 +11,12 @@ draft: true
slug: "00I"
---
### 创建实例
- 在[CLab官网](clab.pku.edu.cn)登录你的校园网账号。
- 在[CLab官网](https://clab.pku.edu.cn/)登录你的校园网账号。
- 按照以下配置进行设置:
- 基础配置:
- 可用域:`nova`
- 规格:`x86架构`-`playgrounds`-`p4`
> 这个规格是基于AMD EPYC 7773X虚拟化而来的4个vCPU+4GB内存。
- 启动源:`镜像`
- 操作系统:`其他`-`Hyper-V Server 2019`
- 从云硬盘启动:`是 - 创建云硬盘`
@@ -128,7 +129,7 @@ Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'
```
返回`State: Not Present`,说明没安装,需要手动安装。
能否通过`Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0`自动安装捏?不行😋
因为这个实例和我们手上的设备一样,连校园网之后需要到[its.pku.edu.cn](its.pku.edu.cn)上面登录,才能访问外网。而这个系统连Internet Explorer都没有(甚至因此用不了`curl`……),自然无法登录。
因为这个实例和我们手上的设备一样,连校园网之后需要到[its.pku.edu.cn](https://its.pku.edu.cn/)上面登录,才能访问外网。而这个系统连Internet Explorer都没有(甚至因此用不了`curl`……),自然无法登录。
没有外网连接,没有`sshd`(不能`scp`),是不是没法传输文件捏……并非如此。这个服务器有`10.0.0.0/8`地址,可以访问内网用户。
在我的联网Mac上访问[https://github.com/PowerShell/Win32-OpenSSH/releases](https://github.com/PowerShell/Win32-OpenSSH/releases),下载预编译版的[OpenSSH-Win64.zip](https://github.com/PowerShell/Win32-OpenSSH/releases/download/10.0.0.0p2-Preview/OpenSSH-Win64.zip)(注意时效性)到我的`~/Downloads`目录,然后打开终端:
```zsh
@@ -137,7 +138,7 @@ python3 -m http.server 8000
```
建立了一个简易文件服务器。
在实例上:(复制时注意通配符)
在实例上:(复制时注意占位符)
```powershell
Invoke-WebRequest -Uri "http://<我的内网IP地址>:8000/OpenSSH-Win64.zip" -OutFile "C:\OpenSSH-Win64.zip"
Expand-Archive C:\OpenSSH-Win64.zip C:\
@@ -179,13 +180,13 @@ Mac上输入:
```zsh
ssh-keygen -t ed25519
```
第一次回车出现`Enter file in which to save the key`,设置一个易于辨识的名字(如`Windows-server`)。后面两个直接回车就行。
第一次回车出现`Enter file in which to save the key`,设置一个易于辨识的名字(如`Windows_server`)。后面两个直接回车就行。
不像Linux服务器,在客户机上通过`ssh-copy-id`发送公钥到服务器,Windows服务器是需要在服务器上执行命令的。
先获取文本形式的公钥:Mac上执行:
```zsh
cat ~/.ssh/Windows-server.pub
cat ~/.ssh/Windows_server.pub
```
复制得到`<公钥文本>`之后,在服务器上输入:(复制时注意通配符)
复制得到`<公钥文本>`之后,在服务器上输入:(复制时注意占位符)
```powershell
Add-Content -Force -Path "$env:ProgramData\ssh\administrators_authorized_keys" -Value <公钥文本>
Restart-Service sshd
@@ -202,4 +203,4 @@ Host Windows
UseKeychain yes
```
由于命令不是POSIX标准,而是冗长的PowerShell格式,很多macOS/Linux下的实用工具也不适配Windows,也由于这个系统无法运行常规的GUI程序(缺少动态链接库),我没有再继续使用,到此删除了实例。
由于命令不是POSIX标准,而是冗长的PowerShell格式,很多macOS/Linux下的实用工具(如htop也不适配Windows,也由于这个系统无法运行常规的GUI程序(缺少大量动态链接库),其做虚拟机宿主的主要功能也不符合我的使用场景,我没有再继续使用,到此删除了实例。