Onde adicionar chaves SSH para permitir conexões com o servidor remoto no Android?


10

Estou usando um kernel Android raiz personalizado (Gingerbread) e consigo conectar-me a um servidor SSH remoto com autenticação de senha usando o busybox e um aplicativo emulador de terminal. Eu gostaria de poder usar chaves SSH para login automático; Isso é possível? Em caso afirmativo, onde devo colocar minha chave privada?

Respostas:


10

Não é tão fácil, mas o sshbinário fornecido pelo busybox (pelo menos o meu) suporta a -isinalização, para que você possa colocar a chave onde quiser e usar isso:

ssh -i /path/to/key_file joeuser@somehost.com

A entrada de página de manual relevante para -i(com a ressalva de que as informações sobre o caminho padrão podem não ser as mesmas no Android):

-i identity_file

         Selects a file from which the identity (private key) for public
         key authentication is read.  The default is ~/.ssh/identity for
         protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa and
         ~/.ssh/id_rsa for protocol version 2.  Identity files may also be
         specified on a per-host basis in the configuration file.  It is
         possible to have multiple -i options (and multiple identities
         specified in configuration files).  ssh will also try to load
         certificate information from the filename obtained by appending
         -cert.pub to identity filenames.

Obrigado, pensei nisso, mas nunca tentei. Parece estranho que não exista um lugar para o comando ssh procurar o diretório .ssh ... talvez seja porque não há um conjunto $ HOME?
Yuttadhammo

2
@Yuttadhammo: O estranho é que $HOME(para root) está definido /datano meu telefone, mas sshparece ignorar todos os diretórios que tento configurar lá. Eu realmente nunca descobri o porquê disso, mas também não precisei me aprofundar nisso.
Eldarerathis

@Yuttadhammo No meu telefone, echo $HOMEnão retorna nada (mesmo para root). Se esse também é o seu caso, é por isso que seu cliente SSH não pode ver as chaves por padrão. Mas, com o -isinalizador, você pode substituir o caminho padrão, para que não faça sentido procurar $ HOME. Esta é a solução correta se o seu cliente SSH reduzido o suportar. Então, tente depois de colocar as chaves no sdcard. Se falhar, não há outra maneira, a menos que você altere o cliente SSH.
Android Quesito

Ótimo. Trabalhou para mim.
user20203293928832

6

Instale e execute o ConnectBot (um cliente SSH dedicado). Toque / pressione a tecla Menu. No menu, toque em Manage Pubkeys. Na próxima tela, pressione novamente / toque na tecla menu. No menu, toque em Import.


Obrigado, eu realmente fiz isso - aplicativo legal; não há como simplesmente colocar uma chave em algum lugar e fazer com que o busybox a pegue?
Yuttadhammo

@Yuttadhammo Não acho que a embalagem padrão do Busybox forneça um cliente SSH. Você pode ser mais específico com seu cliente SSH (que pode ser um utilitário externo)?
Android Quesito

Além disso, lembre-se .. como os applets do busybox são reduzidos para versões originais, seu cliente SSH da linha de comando pode não suportar autenticação com chave, mas é muito improvável. Apenas me fale sobre seu cliente SSH.
Android Quesito

Obrigado, o ConnectBot é a solução que eu usarei, mas o sinalizador -i está realmente mais perto de responder à pergunta.
Yuttadhammo
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.