# 通过ssh远程访问wsl

**URL:** <https://forum.beginner.center/t/topic/2408>\
**Category:** 🛠工具与编程\
**Created:** [2025 年11 月 20 日 03:32 UTC](https://forum.beginner.center/t/topic/2408 "2025-11-20T03:32:28Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

作者： ![doggie](https://forum.beginner.center/user_avatar/forum.beginner.center/doggie/32/550_2.png) [@doggie](https://forum.beginner.center/u/doggie)\
发布日期： [2025 年11 月 20 日 03:32 UTC](https://forum.beginner.center/t/topic/2408/1 "2025-11-20T03:32:28Z")

</div>

> 本文由 [简悦 SimpRead](http://ksria.com/simpread/) 转码， 原文地址 [mysteriouspreserve.com](https://mysteriouspreserve.com/blog/2025/03/01/WSL2-LAN-SSH/)

> M.P.O. Site

March 1, 2025. A Saturday

微软在 Windows 11 22621 开始给 WSL2 添加了一项新功能，镜像网络模式，通过镜像网络模式可以最大化的减小配置 WSL2 网络拓扑配置的难度。

本文教程尽可能从简，目的是提供一个最小化的配置案例，减轻后续维护难度以及避免系统配置造成的差异。

1. 给 Linux 发行版安装 SSH 服务器，Ubuntu 使用的包名是 `openssh-server`，Arch Linux 使用的包名是 `openssh`。

2. 然后配置 ssh 使用密钥连接，首先生成 ed25519 的公钥和私钥，这步自行网络搜索解决，得到私钥文件 id\_ed25591 和公钥文件 id\_ed25519.pub。

3. 把 id\_ed25519.pub 作为 SSH 服务器的认证公钥 `cp id_ed25519.pub ~/.ssh/authorized_keys`。

4. 设置 authorized\_keys 的权限为 `0600`，.ssh 的权限为 `0700`。

5. 设置 SSH 服务器，`nano /etc/ssh/sshd_config`，`Port 233`，`PermitRootLogin no`，`PubkeyAuthentication yes`，`AuthorizedKeysFile .ssh/authorized_keys`，`PasswordAuthentication no`，其中 233 是 SSH 服务端口号，不要和 Linux 或者 Windows 的服务冲突。

6. 配置服务自启动，Arch Linux 用 `systemctl enable sshd`，Ubuntu 用 `systemctl enable ssh`。

7. 配置 WSL2，编辑 Windows 的用户文件夹中的 .wslconfig，内容为：

8. 重启 WSL2 虚拟机。

9. 在 Windows 中使防火墙放行 WSL2 虚拟机，使用 PowerShell 执行 `Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow`。

10. 把 id\_ed25591 私钥文件放到 SSH 客户端电脑的 Home 的 .ssh 文件夹中，Linux 需要设置 .ssh 和 id\_ed25591 权限分别为 `0700` 和 `0600`。

11. 使用 `ssh -p 233 username@WindowsIP` 即可连接到 WSL2 中的 SSH 服务器。

另外 Arch 社区准备正式维护一个 WSL2 镜像，仓库在 [ArchLinux-WSL](https://gitlab.archlinux.org/antiz/archlinux-wsl)，优点是周更并且镜像小，不会遇到密钥环过期之类的问题，也避免了不必要的依赖。

参考：
