No servidor A, você deve executar automaticamente (por exemplo, como serviço systemd ou qualquer outro que possa usar), algo como
ssh userB@serverB -R serverC:1234:serverA:22
como userA, onde a chave pública de userA no servidor A está no arquivo authorized_keys
do userB no servidor B.
Para tentar isso, eu usaria um servidor A onde é fácil obter acesso local por outros meios e executar o comando diretamente antes de instalá-lo como um serviço.
Então, no servidor C, você pode fazer
ssh userX@serverB -p 1234
em que userX é algum usuário no servidor A.
Se algo não funcionar, use (vários) -v
sinalizadores verbosos com ssh
para depurar. Você também pode colocar o (s) demônio (s) ssh no servidor B e no servidor A no modo detalhado, se necessário.
Você também pode deixar de fora serverC
na conexão break-out, permitindo que (temporariamente) qualquer pessoa acesse, se essa verificação não funcionar porque os endereços são NATed, etc.