I don't know anything about OpenVPN. On my end, I use an SSH tunnel. The basics are pretty simple, but a complete setup can be somewhat difficult to do. That being said, you can have any number of computers tunneling (which is fast as long as you don't try to use all the tunnels at the same time).
ssh -fNR 2222:localhost:22 aws-computer
The aws-computer
is a name in my ~/.ssh/config
file which defines the key to use and user name / password.
Now when I ssh on my aws-computer
I can use:
ssh -p 2222 pc1
and it connects as if I had a single/normal SSH connection.
You can repeat the tunneling as many times as you'd like which means, in the end, you can do one ssh pc2
from pc1 and one ssh pc1
from pc2. It's just a bit of setup to make it all work.
Host aws-computer
HostName <ip-address-or-domain-name>
User name
Port 22
PasswordAuthentication no
HostbasedAuthentication no
IdentitiesOnly yes
IdentityFile /home/name/.ssh/tunnel_keys/tunnel_rsa
Note: I use a sub-directory for extra keys (keys other than my usual) so that way I can have any number of them.
The main limitation is that you need to use different ports (i.e. you can't have two services on one computer using one port). The other limitation is that one of the computers must have a static IP address or you need to make a Domain Name Server available which records the IPs. Such a DNS is not very secure since someone else could end up with "your" old IP and your systems may attempt to connect through a third party computer.