Eu tenho um requisito estranho que pensei que seria fácil de fazer, mas acabou sendo mais complicado do que eu pensava.
Eu executo um cluster científico HPC fortemente protegido por firewall. Um usuário deseja que uma VM do Windows 7 execute um aplicativo específico. Criei a VM no meu Mac e a copiei para um servidor Centos 7 no cluster. O VirtualBox funciona bem como um servidor headless e diz que está escutando na porta 3389.
Para chegar ao cluster, primeiro você precisa fazer ssh para um nó de login e, a partir daí, obter o restante do cluster.
Então, eu tenho que criar um túnel SSH, certo? Exceto que o túnel não é para o nó de login, é para outro servidor no cluster depois que você entra no nó. A VM não está em execução no servidor de login (que é uma VM em si). Então eu tenho que fazer double-forwarding?
Tentei usar localforward no arquivo .ssh/config e não funcionou.
Agora estou pensando em configurar o nó de login para encaminhar todo o tráfego na porta 3389 para o servidor que executa o vm.
Estou indo na direção certa ou subindo na árvore errada?
Dado que você pode fazer o servidor de login encaminhar o tráfego para a instância do VirtualBox, suponho que o servidor VirtualBox esteja a apenas um salto do servidor de login e o servidor de login pode alcançar a instância do VirtualBox na porta 3389.
Nesse caso, você não precisa fazer o encaminhamento duplo. O SSH pode encaminhar uma porta de qualquer computador remoto que o servidor SSH possa alcançar, portanto, você deve fazer apenas:
Pode ser importante observar que a
host.which.runs.virtualbox:3389
parte no exemplo acima é relativa ao computador no qual você fez login. Portanto, se o computador de login conhece o host executando o VirtualBox comovboxrunner.local
, você pode usar esse nome no encaminhamento, mesmo que o seu computador local (aquele em que você está executando o ssh) não saiba nada sobre esse nome.