Windows 系统利用 SSH 和 WSL2 子系统当服务器
由于最近组内需要将一台 Windows 系统的电脑 W A W_A WA 转成能通过 SSH 访问,并且能用 Linux 命令当服务器运行。忙活了一天,终于是把全部东西弄通了。
安装 SSH
首先就是 W A W_A WA 先要安装 OpenSSH 服务,直接按照下面的教程安装即可:如何通过SSH远程连接到Windows系统指南,最好开启开机自启动。
安装好之后在另一台电脑上 W B W_B WB 用 ssh 访问,如果成功的话会显示如下的内容。
安装 WSL2
然后是要给 W A W_A WA 安装 WSL2,可以根据这篇博客安装:WSL2的安装与使用-Windows与Linux双系统的新选择。
直到用命令
wsl -l -v
显示以下内容就说明安装完成。
用 SSH 服务软件进行连接
我们在 W A W_A WA 上查看 设置 — 关于,获取设备名称(注意,可能有一些设备不能用设备名称直接访问,只能通过 ip 地址)。假设你的设备名称是 DESKTOP-TMFN123,还有 W A W_A WA 开机时的账户名称 TMFN,以及密码 TMFN。
在 W B W_B WB 打开一款 SSH 的软件,比如 Termius,配置如下内容,填上设备名称/ip地址,账户,密码,就可以愉快进入命令行界面。
然后再键入
wsl
就可以进入 WSL2 子系统,完全当 Linux 系统使用。
Pycharm 连接
在 pycharm 的 ssh 配置如下内容,记得一定要将 authentication type 换成 openssh config,否则可能遇到无法连接的情况。
连接好之后,就能通过终端访问,一样键入 wsl 就可以进入 Linux 的模式。
联网问题
尽管如此,还是没办法愉快地使用 WSL2 进行代码开发,因为 WSL 默认还是不能联网的。也就是所有需要联网的命令,比如 ping www.xxx.com,conda create -n env_name python=3.X,pip install xx 都是没办法运行,严重影响开发体验。
比如 conda create 的时候,会遇到报错:
CondaHTTPError: HTTP 000 CONNECTION FAILED for url
找了一圈,有说改 .condarc 的,还有其他的方法,但这和 WSL2 环境下的原因不匹配,实际上是 WSL2 没办法联网导致的。只有这个博客完美解决了 WSL2 的网络问题 WSL2莫名其妙的连不上网了。按照里面的命令一个一个运行,重启电脑 即可解决问题。
到这里 W A W_A WA 基本就可以充当一个 Linux 服务器以供开发使用了。