100
The issue is, ssh to public ip or internal ip is working fine. However, this is not working while ssh to wireguard interface ip.
After some research from the internet, I set all wireguard interface MTU to 1380 (for all servers), then restart wireguard, it works now.
Refer
https://www.reddit.com/r/WireGuard/comments/x062j6/only_ssh_not_working_over_wireguard_everything/
https://gist.github.com/nitred/f16850ca48c48c79bf422e90ee5b9d95
http://pandorariver.blogspot.com/2020/03/wireguard-vpn-wireguardopenvpn-push.html