Para executar aplicativos instalados localmente usando a CPU e a memória de outro computador, você pode - assumindo que os processadores são compatíveis - tente isso. Não tenho certeza de como isso funcionará, mas a teoria parece sólida :) Você provavelmente precisará de acesso de superusuário no servidor remoto para que isso funcione.
-
ssh no servidor distante
-
Monte o sistema de arquivos raiz local em algum lugar. Você não deve fazer isso a menos que esteja certo de que pode confiar nos administradores do sistema remoto.
- Isso pode ser feito via sshfs, desde que você possa ssh do servidor para o sistema local. Eu acho que você pode improvisar isso enviando uma porta de volta através da conexão que você fez quando sshing de local para servidor, mas eu não cheguei a tais travessuras eu mesmo.
- Normalmente, se a máquina local estiver em uma rede doméstica, você apenas configuraria o encaminhamento de porta em seu roteador. Você provavelmente deve desabilitar o login com senha no sshd_config do seu sistema local antes de seguir esse caminho e gerar uma chave ssh com senha para sua conta no servidor,
scp
ing o arquivoid_?sa.pub
de volta ao local para anexá-lo ao seu~/.ssh/authorized_keys
. Restringir os endereços IP que podem ssh em sua máquina é outra boa idéia. Et cetera.
- Normalmente, se a máquina local estiver em uma rede doméstica, você apenas configuraria o encaminhamento de porta em seu roteador. Você provavelmente deve desabilitar o login com senha no sshd_config do seu sistema local antes de seguir esse caminho e gerar uma chave ssh com senha para sua conta no servidor,
- Se você quiser executar qualquer coisa que precise ser executada como root, eu acho que você precisará configurar a montagem sshfs para ser root em seu sistema de arquivos local. Isso significa que você precisa permitir que as pessoas sigam sua caixa local como root, que é outro movimento de política duvidoso. Eu realmente não tenho certeza sobre isso, você pode ser capaz de sudo dentro do shell chroot.
- Você pode montá-lo de outras maneiras, por exemplo, por meio do NFS, mas o sshfs é provavelmente o mais fácil de proteger. Fazer tudo isso em uma VPN provavelmente seria mais sensato.
- Isso pode ser feito via sshfs, desde que você possa ssh do servidor para o sistema local. Eu acho que você pode improvisar isso enviando uma porta de volta através da conexão que você fez quando sshing de local para servidor, mas eu não cheguei a tais travessuras eu mesmo.
-
Uma vez que você tenha o sistema de arquivos montado, e ainda esteja ssh-in-ed para o servidor, faça
chroot / path / to / mount / do / local / filesystem COMANDO ARGS
Ou você pode apenas cd
para o diretório e executar chroot
e, em seguida, você terá um shell raiz em seu próprio sistema, com o processamento sendo feito pelo servidor. O primeiro formulário tem a vantagem de permitir que você salve convenientemente a saída no sistema do servidor, já que qualquer redirecionamento será feito no servidor. E.G.
chroot /path/to/mount/of/local/filesystem find -iname "somefile" > ~/tmp/somefile.find.out
salvará a lista de arquivos denominados "somefile" em seu diretório temporário inicial no servidor .
advertências
Isto é, pelo menos do meu ponto de vista, bastante experimental. Eu não tenho certeza do que poderia dar errado, mas eu não tentaria, a menos que algumas pessoas garantam isso. Mesmo assim, eu não tentaria em um sistema de produção. Se eu estivesse fazendo um programa de TV de TI, esse segmento seria legendado com as palavras " NÃO TENTE TAL EM CASA ".
Definitivamente, você precisará ter processadores compatíveis nas duas máquinas: se o sistema local for i386, o servidor terá que ser i386 ou amd64. Além disso, como o kernel do servidor fará o trabalho, você só poderá executar aplicativos locais que funcionem com a versão do kernel em execução no servidor. Provavelmente seria melhor se eles fossem a mesma versão. Portanto, se tanto a sua caixa local como o servidor remoto estiverem executando o Debian Squeeze de 32 bits, isso pode funcionar sem problemas.
Além disso, pode haver uma vantagem muito limitada em fazer as coisas dessa maneira, já que os dados que precisam ser transferidos - incluindo os arquivos a serem processados e os próprios aplicativos - terão que ser criptografados e transferidos. sobre sua conexão remota. Então, se você está procurando fazer isso para aproveitar o poder de processamento superior do servidor, você pode não ganhar muito no final e pode perder alguns.