Compilando o cliente OpenSSH ou o Dropbear para Android

1

Eu tenho um problema interessante.

Gostaria de usar uma chave SSH privada com meu emulador de terminal do Android ( jackpal.androidterm ). Gostaria de instalar a chave privada em um local razoavelmente seguro e ser capaz de acessar a chave de maneira bastante direta. Eu gostaria de fazer isso:

ssh theotherserver

Com um arquivo ~/.ssh/config com esta aparência:

Host theotherserver
    User mycustomuser

E a chave privada sendo lida de ~/.ssh/id_rsa .

O problema é que o Dropbear, por padrão, procura em /data/.ssh (pelo menos aqui no CyanogenMod 11) e esta pasta deve ser de propriedade de root . Eu fiz um chown e chmod no diretório e seus filhos para poder usá-lo com o "usuário do aplicativo" que é u0_a100 , e isso funciona, mas essas permissões são limpas na reinicialização: então não vai.

O que eu realmente gostaria de fazer é simplesmente informar ao Dropbear por meio de um arquivo de configuração que a sua residência reside em /data/data/jackpal.androidterm/app_HOME/.ssh , pois esse diretório será 'com certeza' de propriedade do "usuário do aplicativo" e não correr em quaisquer problemas de permissões. Um benefício adicional é que outros usuários não poderão ler esse diretório, pois ele é privado para o aplicativo. (as permissões dir são drwxrwx--x ) Existe uma maneira de configurar o Dropbear com um arquivo de configuração para alterar a localização do seu diretório .ssh padrão? Seria incrível se usasse apenas $HOME , mas obviamente não é.

Se isso for impossível, como posso compilar o cliente OpenSSH ou o Dropbear para Android de uma forma que me permita atingir meu objetivo (aparentemente simples)?

    
por Naftuli Kay 11.06.2014 / 06:35

1 resposta

1

Como @ xx4h mencionado nos comentários da pergunta, uma solução foi fazer o symlink /data/.ssh to /data/data/jackpal.androidterm/app_HOME/.ssh :

# ln -s /data/data/jackpal.androidterm/app_HOME/.ssh /data/.ssh

Isso corrigiu e permanece em vigor após a reinicialização. Exporte uma variável de ambiente para facilitar a modificação da configuração do SSH:

SSH_HOME="/data/data/jackpal.androidterm/app_HOME/.ssh"

Ou isso, ou simplesmente solte outro link simbólico lá.

    
por 11.06.2014 / 06:58