WSL2开启SSH.

按照网上的教程1折腾了一下,据说自带的OpenSSH有问题,需要先卸后装

先配置一下源,看下/etc/os-release:

PRETTY_NAME=”Ubuntu 22.04.3 LTS”
NAME=”Ubuntu”
VERSION_ID=”22.04″
VERSION=”22.04.3 LTS (Jammy Jellyfish)”
配置相应版本的源

先卸后装openssh


然后修改配置文件 ,这里还是用的密码登录,密钥的差不多处理


然后重启服务


新装的ssh可能不是默认开机自启的,顺便设置了


同样的,Windows上自带的OpenSSH(如果装了的话)也有问题,就是连不上,需要重新装一个或者用Xshell之类的软件来连接,或者参考2把环境变量里的ssh换成一个正常的(比如git bash自带的那个)。

然后应该可以在Windows上用powershell连接了

Windows端口转发

上一步只能保证本机连接到WSL,为了能在局域网甚至外网上进行连接,需要进行一些设置,主要分为两步:首先在Windows防火墙设置端口,给刚才设定的SSH端口2222添加入站规则,这部分参考3

;然后是端口转发,这里有一个比较严重的问题,WSL2每次重启都会换IP,在网上4找了个powershell脚本,摘录如下(运行需要管理员权限)

可以把这个脚本命名forward_wsl2_port.ps1, 放进Windows计划任务开机自动执行。,具体操作是:

右键点win开始按钮,选择computer management,  选择Computer Management(Local) –> System Tools –> Task Scheduler –> Task Scheduler Library,  在Task Scheduler Library上右键,选择 Create Basic task, 写个name,一直下一步

可以打开powershell手动运行一下脚本, 然后直接ssh root@windows服务器IP 2222, 就可以了

内网穿透

端口转发到WSL只能保证局域网内的访问,想要通过外网访问WSL还要内网穿透。内网穿透参考这篇文章,开机自启还是可以计划任务。

其它

关于VS code远程连接,暂时没有需求,我没有试过,可以参考5

  1. WSL优化之SSH远程登录篇 https://www.cnblogs.com/yingbin/p/12828902.html 
  2. 解决VS Code Remote Development插件无法建立SSH连接的问题 https://zhuanlan.zhihu.com/p/81039716 
  3. 设置WSL可远程连接 https://blog.csdn.net/lcuwb/article/details/82885920 
  4. WSL2配置公网链接与固定别名 https://zhuanlan.zhihu.com/p/123350158 
  5. Windows 10 之 WSL 2 https://www.cnblogs.com/zyon/p/11228265.html 
Categories: TOOLS

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *