The process of exposing WSL1/2 SSH to the public you will find
detailed in the article
Configuring SSH access into WSL 1 and WSL 2.
I expose here only the parts which I think are missing from what you
did, found in the section "WSL 2-specific steps".
The article assumes 2022 as the incoming port for SSH.
Creating the firewall rule to allow incoming traffic on port 2022
with PowerShell:
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd) for WSL' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 2022
To route incoming traffic on the physical interface to the WSL interface,
is complicated because the IP given to the WSL instance changes
over time.
To figure that dynamically, one needs to update the batch script
%USERPROFILE%\sshd.bat as follows:
@echo off
setlocal
C:\Windows\System32\bash.exe -c "sudo /usr/sbin/service ssh start"
C:\Windows\System32\netsh.exe interface portproxy delete v4tov4 listenport=2022 listenaddress=0.0.0.0 protocol=tcp
for /f %%i in ('wsl hostname -I') do set IP=%%i
C:\Windows\System32\netsh.exe interface portproxy add v4tov4 listenport=2022 listenaddress=0.0.0.0 connectport=2022 connectaddress=%IP%
endlocal
Once this is done, you should be able to SSH using the user-name,
rather than the Microsoft account.
For more details, see the linked article.