Se você tem um Middle Machine em algum lugar na Internet, onde você pode usar o SSH em Desktop e Laptop (as máquinas não precisam estar na mesma rede), você pode encaminhar o tráfego através do Middle Machine com bastante facilidade:
Step 1 - SSH from Laptop to Middle Machine:
Laptop --------SSH-----> Middle Machine
Step 1b - set up a TCP tunnel back to Laptop:
Laptop --------SSH-----> Middle Machine
<--RemoteForward--
Step 2 - SSH from Desktop to Middle Machine:
Laptop --------SSH-----> Middle Machine <--SSH-- Desktop
<--RemoteForward--
Step 2b - set up a TCP tunnel through Middle Machine:
Laptop --------SSH-----> Middle Machine <--SSH-- Desktop
<--RemoteForward-- <--LocalForward--
Step 3 - SSH from Desktop through Middle Machine and RemoteForward to Laptop:
Laptop --------SSH-----> Middle Machine <--SSH-- Desktop
<--RemoteForward-- <--LocalForward-- <--SSH--
Veja esta resposta no SuperUser sobre como configurar isso (nessa resposta, Middle Machine é nomeado serverpc
, Laptop é officepc
, Desktop é homepc
). Existe alguma sobrecarga extra de rede e CPU devido ao fato de que você está executando o SSH-through-SSH, mas é surpreendentemente utilizável.
Tudo isso pode ser feito como um usuário normal usando o vanilla SSH na configuração padrão. Você também pode usar todos os recursos do SSH no túnel final do desktop para o laptop - SSHFS, encaminhamento X, encaminhamento de agentes, nome-dele.