https://qiita.com/yabeenico/items/15532c703974dc40a7f5 を超参考にさせてもらっています
まずはホストキーがないので生成
$ sudo ssh-keygen -t rsa -N '' -f /etc/ssh/ssh_host_rsa_key
Port 22
PasswordAuthentication yes
distro別にPortを設定する。ひとまずパスワード認証許可で。
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
$ cat /opt/pf22.sh
#!/bin/bash
if [ -f /var/run/sshd.pid ]; then
sudo kill $(cat /var/run/sshd.pid)
fi
sudo /usr/sbin/sshd
ip=$(ip a s eth0 | sed -e 's,.*inet \(.*\)/.*,\1,p;d')
netsh.exe interface portproxy delete v4tov4 listenport=22
netsh.exe interface portproxy add v4tov4 listenport=22 connectaddress=${ip}
WSL2側の:22にホスト側からつながるようにnetshを叩くのが常道のようです
タスクスケジューラに管理者権限でログイン時に実行するように登録します。 登録には管理者権限が必要です(ややこしい
schtasks /create /tn "Microsoft\Windows\Windows Subsystem For Linux\sshd" /tr "C:\Windows\system32\wsl.exe -d CentOS7 --exec bash /opt/pf22.sh" /sc onlogon /rl highest /F
CentOS7 は WSL2 の名前です。