Não é possível usar um soquete existente para um propósito diferente. Seria como dirigir um trem pela estrada - ele simplesmente não vai funcionar (ou não sem antes desenterrar a rodovia e colocar trilhos).
Então, quais são suas opções?
Bem, há alguns.
Um seria executar um servidor VPN em seu servidor ao qual seu sistema integrado se conecta. Isso efetivamente perfurará seu roteador e criará uma nova rede conectando seu sistema incorporado e seu servidor. Você pode então ssh através dessa nova rede. Eu costumo usar vtun 1 para isso, pois é leve, tem muitas opções de configuração diferentes (incluindo Ethernet virtual o que é muito legal 2 ).
Você pode fazer com que o sistema incorporado recupere os comandos do servidor por meio do canal existente e, se receber o comando correto, abra uma conexão SSH ao servidor, incluindo o encaminhamento de porta SSH. Isso abriria uma conexão TCP não acoplada entre o sistema embarcado e seu servidor, com a qual você poderia fazer o que quiser. Ele poderia, por exemplo, conectar um soquete local no servidor a um daemon SSH em execução no sistema embarcado, assim, você faria o ssh para o host local, mas em um número de porta diferente, e encaminharia a conexão para o sistema integrado. / p>
Meu favorito seria usar a VPN, pois ela abre um novo mundo de possibilidades, não apenas um único túnel SSH.
1 vtun está disponível nos repositórios padrão Debian / Ubuntu / etc apt.
2 Eu tenho meu desktop e meu laptop conectados aos meus dois servidores, que também estão conectados uns aos outros, usando vtun com ethernet virtual (< em> toque ) e conexões TCP, além de quagga para roteamento BGP. Meu laptop pode falar com a minha área de trabalho quando estou fora e sobre o uso do meu telefone para acesso à Internet como se estivessem na mesma sala. Ah, e tudo é criptografado também.