If you are using a public network to communicate between two machines that you own, you should use a VPN solution
(OpenVPN recommended ...) with
digital certificates.
(Do
not use "PSKs = pre-shared keys," which are nothing more than passwords.)
If you take this simple step, all communications will be securely encrypted
and the two VPN hosts will be able to recognize one another. If you use the
tls-auth feature of OpenVPN, you can also
conceal the very existence of(!) the two servers so that outsiders will not be "pestering" your servers in futile attempts to break in to them.
Unlike a "password," a digital certificate contains thousands of bits of "pure entropy," and it can be
individually revoked without affecting any other certificate that may have also been issued. (Certificates can also be "password protected" – encrypted – to prevent unintended use.) Like a badge that you swipe to get into an office building, either you possess a "live" one or you don't.
When you connect, the remote side has an internal IP-address which you can predict. You simply "talk" to that address and the data is magically transported through the secure "tunnel" to the other side. It really
is a "virtual private network," because the remote side appears to be local to you. Other software need take no additional steps to secure the communication. VPN's are a cryptographically-secure TCP/IP router (or switch): the remote side is "just there."
If you arrange for services such as "sshd" to listen and respond
only to the tunnel address-domain, you create an additional layer of security – and you reduce the number of "unauthorized access attempts" to
zero. No one can even
see your SSH server in your castle's portcullis unless they have already cleared the tunnel moat (after having found the hidden drawbridge). It's effortless for authorized users but impossible for everyone else.
Yeah, it takes a little time

to get everything working the first time, because crypto is purposely designed to offer
no clues, but then you can just "fuhgeddaboudit" because It Just Works.™ (The most frequent problems have to do with correctly setting the routing tables in all of the
surrounding hardware so that both encrypted and unencrypted traffic is routed correctly.)