远程连接WSL 的最佳解决方案

本文最后更新于 2025年4月18日 晚上

💡 目标

本地 VSCode → SSH 远程登录 Windows 主机 → 自动进入 Windows 的 WSL 环境。
后续 VSCode 打开目录、运行调试都在 WSL 内,体验跟 Linux 机器一样。


🧑‍💻 步骤一:Windows 端配置 SSH 服务

1️⃣ 确保 Windows 安装 OpenSSH Server

  • 设置应用可选功能添加功能 → 安装 OpenSSH Server
  • 安装好后,打开服务管理器,找到 OpenSSH SSH Server
  • 设置为:自动,然后启动。

2️⃣ 检查 Windows 防火墙,允许 22端口

3️⃣ 配置 Windows 上的 SSH,找到配置文件:

1
C:\ProgramData\ssh\sshd_config

添加或确保这行配置(一般默认打开):

1
Subsystem   sftp    sftp-server.exe

✅ 确保 SSH 连接正常:用 ssh 从其他机器连接测试。

1
ssh your_windows_user@your_windows_ip

🧑‍🔧 步骤二:设置 SSH 自动进入 WSL

重点来了!Windows 可以用 ForceCommand 强制登录时执行 wsl.exe,直接落进 Linux 子系统。

1️⃣ 在 Windows 上,打开:

1
C:\Users\your_windows_user\.ssh\authorized_keys

如果没有,就创建一个,加入你的公钥(如果用密钥登录的话)。

2️⃣ 修改 Windows 上 sshd_config 文件:

1
C:\ProgramData\ssh\sshd_config

添加:

1
2
Match User your_windows_user
ForceCommand C:\\Windows\\System32\\wsl.exe

注意路径是 双反斜杠 \\,不能写错!

保存后,重启 SSH 服务:

1
Restart-Service sshd

💻 步骤三:本地 VSCode 配置 Remote-SSH

1️⃣ 本地 VSCode 安装插件:

  • Remote - SSH

2️⃣ 配置本地 ~/.ssh/config

1
2
3
4
Host mywslserver
HostName your_windows_ip
User your_windows_user
Port 22

3️⃣ 用 VSCode 连接:

  • F1 → 输入 Remote-SSH: Connect to Host...
  • 选择 mywslserver

这时候会发现:

  • 登录完成后,Remote Explorer 直接显示的路径就是 WSL 里的路径!
  • VSCode 的终端默认是 bash 或你设置的 wsl shell。

🚀 补充优化(可选)

如果你的 Windows 上装了多个 WSL 发行版,默认用哪个,可以设置:

1
wsl.exe --set-default <DistroName>

例如:

1
wsl.exe --set-default Ubuntu-22.04

这样 SSH 登录时 ForceCommand 执行的就是这个默认发行版。


🎯 最终效果

  • 本地 VSCode → 一键 SSH → 自动进入远程 Windows 的 WSL 子系统。
  • 代码目录 / 工具链都在 Linux 环境,支持 Docker / apt / Python / GCC。
  • 调试体验 = 真 Linux 环境,解决跨平台开发问题。

💡 温馨提示

  • ForceCommand 方式不支持 Windows 桌面环境,纯命令行进 WSL;适合专注开发。

远程连接WSL 的最佳解决方案
https://liegu0317.top/2025/04/18/20250418-remote-wsl/
作者
多双升
发布于
2025年4月18日
许可协议