安装 wsl 并配置 xshell 连接 wsl

首先 win+x -> 设置 -> 更新和安全 -> 开发者选项 -> 开发者模式

然后 win+r -> 输入control -> 程序 -> 启用或关闭Windows功能 -> 适用于 Linux 的 Windows 子系统

登陆:https://docs.microsoft.com/en-us/windows/wsl/install-manual

Downloading distros

win+s -> PowerShell -> 管理员模式运行 ->  Add-AppxPackage .\app_name.appx(对应路径下的zip包)  -> Update to WSL 2

Update to WSL 2

-> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Restart your machine to complete the WSL install and update to WSL 2.

-> wsl --set-default-version 2

具体请参考 如何更新 wsl2:https://docs.microsoft.com/en-us/windows/wsl/install-win10#update-to-wsl-2

然后登陆自己wsl,我下载的 ubuntu 20.04 LTS,所以以这个为例。

设置 username 和 passwd 不用多说。

1、更改源为 阿里云<br />

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak   #备份下原有的源

sudo vim /etc/apt/sources.list

:%s/archive.ubuntu.com/mirrors.aliyun.com/g  # 全局替换 

sudo apt-get update && sudo apt-get -y upgrade  # 更新包并且升级包

2、xshell  ssh 连接 wsl
sudo apt-get remove openssh-server  # 卸载自带的 ssh
sudo apt-get install openssh-server  # 再次安装
vim /etc/ssh/sshd_config
添加如下:  

Port 2222 # 默认的是22,但是windows有自己的ssh服务用的也是22端口,修改一下
UsePrivilegeSeparation no
PasswordAuthentication no # 默认为no 我们使用 ssh秘钥对登录,所以使用默认no

sudo service ssh --full-restart  # 重启ssh服务

sudo -i  #可直接进入 root用户

ssh-keygen  #生成 ssh秘钥和公钥 一路回车

cp /mnt/c/Users/用户名/.ssh/id_rsa.pub /root/.ssh/authorized_keys

此后就可以使用 xshell 连接 wsl 了,连接ip:localhost ,port:22222

------------------------------------接下来设置开机自启动 wsl 的 sshd 服务 ---------------------------------------

在 wsl 中编辑 脚本:

vim /etc/init.wsl

内容如下:

#! /bin/bash
/etc/init.d/cron $1    # 定时服务,$1 表示 命令后的第一个参数 {start-stop-restart}
/etc/init.d/ssh $1   # ssh 服务,$1 表示 命令后的第一个参数 {start-stop-restart}

chmod 774 /etc/init.wsl

win+r -> shell:startup

在自启动目录下编辑脚本:ubuntu2004.vbs

内容如下:

# 表示创建一个 cmd窗口的对象 ws,以wsl 命令来启动 wsl中的 /etc/init.wsl 脚本,具体可 wsl --help 来查看如何使用

Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d Ubuntu-20.04 -u root /etc/init.wsl start", vbhide