Isso soa como um trabalho para um túnel SSH reverso.
Estou assumindo pela sua pergunta que o Servidor B está em uma rede atrás de um firewall no qual você não tem controle - nesse caso, o encaminhamento de porta no roteador não seria possível. (Se você fizer isso, você pode querer olhar para essa rota).
Em um túnel reverso, você encapsula a conexão para B através do A. de acesso público. Para fazer isso, você SSH de B - > Um com um encaminhamento de porta especificado na linha de comando.
ssh -f user@server-a -L 2222:server-a:22 -N
Em seguida, o SSH do Local - > A com sua porta encaminhada especificada:
ssh -p 2222 user@server-a
... que conectaria você ao servidor B.
Você também pode querer usar autossh
se quiser criar e manter sua conexão automaticamente.
link