Non-Profit, International

Spirit unsterblich.

配置WSL2的局域网SSH访问

字数统计:526

微软在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_configPort 233PermitRootLogin noPubkeyAuthentication yesAuthorizedKeysFile .ssh/authorized_keysPasswordAuthentication no,其中233是SSH服务端口号,不要和Linux或者Windows的服务冲突。

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

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

    
    [wsl2]
    networkingMode=mirrored
    [expermental]
    hostAddressLoopback=true
    
    
  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权限分别为 07000600

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

另外Arch社区准备正式维护一个WSL2镜像,仓库在ArchLinux-WSL,优点是周更并且镜像小,不会遇到密钥环过期之类的问题,也避免了不必要的依赖。

参考

若无特殊声明,本人原创文章以 CC BY-SA 4.0许可协议 提供。