How do I set up SSH over the internet?

  I think this type of questions were answered before but due to lack of networking knowledge, for a couple of years I searched the internet and read many websites in an attempt to connect to an SSH server over the internet. But I have failed. I want to know if it is possible to connect two systems using SSH without using third party services like ngrok.

  I have two computers running ArchLinux.

  Computer A and B are inside a local network but I want to set up the ssh so that I can access A from B via SSH over the internet (like how Anydesk, Teamviewer and other such remote desktop software connects).

  Systems Details:

  1. The systems are connected to a [Digisol] router.

  2. Both have package installed. System A is running . A can get connected to B over the LAN.

  Hostname of system A: archlinux-pc

  Hostname of system B: archlinux

  On both the systems the username is sourav. That is, I want to connect to sourav on archlinux-pc.

  Set up Virtual Server configuration on the router (Digisol):

  My public IP is xx.xxx.171.113 as reported by ident.me. The IP doesn’t change in a period of many months.

  whatismyipaddress.com shows the same IPv4 but IPv6: Not detected

  My router has a section called WAN Configuration which shows some different IP:

  I have already tried using from system B, which takes a long time but doesn’t connect at all.

  I have also tried these links:

  https://raspberrypi.stackexchange.com/questions/13861/setting-up-ssh-over-internet-on-my-pi

  https://help.ubuntu.com/community/SSH/OpenSSH/PortForwarding

  How do I get connected to system A from system B using SSH without any other services like ngrok if something like that is possible? Also, can I connect to system A over SSH using termux running on my Android phone?